Open In App

Program to check if N is a Myriagon Number

Last Updated : 19 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Given a number N, the task is to check if N is a Myriagon Number or not. If the number N is an Myriagon Number then print “Yes” else print “No”.
 

Myriagon Number is a polygon with 10000 sides. The first few Myriagon numbers are 1, 10000, 29997, 59992, 99985, 149976 … 
 


Examples: 
 

Input: N = 10000 
Output: Yes 
Explanation: 
Second Myriagon number is 10000.
Input: N = 300 
Output: No 
 


 


Approach: 
 

  1. The Kth term of the Myriagon number is given as: 
    K^{th} Term = \frac{9998*K^{2} - 9996*K}{2}
     
  2. As we have to check that the given number can be expressed as a Myriagon Number or not. This can be checked as: 
     

=> N = \frac{9998*K^{2} - 9996*K}{2}
=> K = \frac{9996 + \sqrt{79984*N + 99920016}}{19996}
 


  1.  
  2. If the value of K calculated using the above formula is an integer, then N is a Myriagon Number.
  3. Else N is not a Myriagon Number.


Below is the implementation of the above approach: 
 

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if N is a
// Myriagon Number
bool isMyriagon(int N)
{
    float n
        = (9996 + sqrt(79984 * N + 99920016))
          / 19996;
 
    // Condition to check if the
    // number is a Myriagon number
    return (n - (int)n) == 0;
}
 
// Driver Code
int main()
{
    // Given Number
    int N = 10000;
 
    // Function call
    if (isMyriagon(N)) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    return 0;
}

                    

Java

// Java program for the above approach
import java.io.*;
 
class GFG {
     
// Function to check if N
// is a myriagon number
static boolean isMyriagon(int N)
{
    double n = (9996 + Math.sqrt(79984 * N +
                                 99920016)) / 19996;
         
    // Condition to check if the
    // number is a myriagon number
    return (n - (int)n) == 0;
}
         
// Driver Code
public static void main (String[] args)
{
         
    // Given Number
    int N = 10000;
         
    // Function call
    if (isMyriagon(N))
    {
        System.out.println("Yes" );
    }
    else
    {
        System.out.println("No" );
    }
}
}
 
// This code is contributed by ShubhamCoder

                    

Python3

# Python3 implementation to check that
# a number is a myriagon number or not
import math
 
# Function to check that the
# number is a myriagon number
def isMyriagon(N):
     
    n = (9996 + math.sqrt(79984 * N +
                          99920016)) / 19996
     
    # Condition to check if the
    # number is a myriagon number
    return (n - int(n)) == 0
     
 
# Driver Code
n = 10000
 
# Function call
if (isMyriagon(n)):
    print("Yes")
else:
    print("No")
     
# This code is contributed by ShubhamCoder

                    

C#

// C# program for the above approach
using System;
 
class GFG{
     
// Function to check if N
// is a myriagon number
static bool isMyriagon(int N)
{
    double n = (9996 + Math.Sqrt(79984 * N +
                                 99920016)) / 19996;
     
    // Condition to check if the
    // number is a myriagon number
    return (n - (int)n) == 0;
}
     
// Driver Code
static public void Main ()
{
     
    // Given Number
    int N = 10000;
     
    // Function call
    if (isMyriagon(N))
    {
        Console.Write( "Yes" );
    }
    else
    {
        Console.Write( "No" );
    }
}
}
 
// This code is contributed by ShubhamCoder

                    

Javascript

<script>
 
// Javascript program for the above approach
 
// Function to check if N is a
// Myriagon Number
function isMyriagon(N)
{
    n = (9996 + Math.sqrt(79984 * N + 99920016))
          / 19996;
 
    // Condition to check if the
    // number is a Myriagon number
    return (n - parseInt(n)) == 0;
}
 
// Driver Code
// Given Number
N = 10000;
// Function call
if (isMyriagon(N)) {
    document.write("Yes");
}
else {
    document.write("No");
}
     
</script>

                    

Output: 
Yes

 

Time Complexity: O(logN) because inbuilt sqrt function is being used

Auxiliary Space: O(1)



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads