Open In App

Check whether two convex regular polygon have same center or not

Given two positive integers N and M which denotes the sides of the convex regular polygon where N < M, the task is to check whether polygons have the same center or not if N-sided polygon was inscribed in an M-sided polygon.
Center of Polygon: Point inside a polygon which is equidistant from each vertex of the polygon. 
Examples: 
 

Input: N = 9, M = 3 
Output: YES 
Explanation: 
Polygon of side 3 when inscribed in a polygon of side 9, then both polygons have same center.
Input: N = 10, M = 3 
Output: NO 
Explanation: 
Polygon of side 3 when inscribed in a polygon of side 10, then both polygons don’t have same center. 
 

 

Approach: The key observation in this problem is that when M % N == 0, that means the sides of N-sided polygon equally covers the sides of M-sided polygon, which means both the polygons have same center.
Algorithm: 
 

Below is the implementation of the above approach:
 




// C++ implementation to check whether
// two convex polygons have same center
 
#include<bits/stdc++.h>
using namespace std;
 
// Function to check whether two convex
// polygons have the same center or not
int check(int n, int m){
    if (m % n == 0){
        cout << "YES";
    }
    else{
        cout << "NO";
    }
    return 0;
}
 
// Driver Code
int main()
{
    int n = 5;
    int m = 10;
     
    check(n, m);
    return 0;
}




// Java implementation to check whether
// two convex polygons have same center
class GFG{
  
// Function to check whether two convex
// polygons have the same center or not
static int check(int n, int m){
    if (m % n == 0){
        System.out.print("YES");
    }
    else{
        System.out.print("NO");
    }
    return 0;
}
  
// Driver Code
public static void main(String[] args)
{
    int n = 5;
    int m = 10;
      
    check(n, m);
}
}
 
// This code is contributed by sapnasingh4991




# Python3 implementation to check whether
# two convex polygons have same center
 
# Function to check whether two convex
# polygons have the same center or not
def check(n, m):
    if (m % n == 0):
        print("YES")
    else:
        print("NO")
 
# Driver Code
n = 5
m = 10
 
check(n, m)
 
# This code is contributed by mohit kumar 29




// C# implementation to check whether
// two convex polygons have same center
using System;
 
class GFG{
   
// Function to check whether two convex
// polygons have the same center or not
static int check(int n, int m){
    if (m % n == 0){
        Console.Write("YES");
    }
    else{
        Console.Write("NO");
    }
    return 0;
}
   
// Driver Code
public static void Main(String[] args)
{
    int n = 5;
    int m = 10;
       
    check(n, m);
}
}
  
// This code is contributed by Rajput-Ji




<script>
 
// Javascript implementation to check whether
// two convex polygons have same center
 
// Function to check whether two convex
// polygons have the same center or not
function check(n, m)
{
    if (m % n == 0)
    {
        document.write("YES");
    }
    else
    {
        document.write("NO");
    }
    return 0;
}
 
// Driver code
var n = 5;
var m = 10;
  
check(n, m);
            
// This code is contributed by Kirti
 
</script>

Output
YES

Performance Analysis: 
 

 


Article Tags :