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:

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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
chevron_right

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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
chevron_right

Output:
YES

Performance Analysis:





Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Article Tags :
Practice Tags :