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:
- Check if M is divisible by N, If yes then both the polygons have same center.
- Otherwise both polygons have the different centers.
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> |
YES
Performance Analysis:
- Time Complexity: O(1).
- Auxiliary Space: O(1).