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:
- 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++
// 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
// 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
# 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#
// 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 |
Javascript
<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).
Contact Us