Open In App

Program to check if N is a triacontagonal number

Last Updated : 15 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a number N, the task is to check if the number is a Triacontagonal number or not.

A Triacontagonal number is a class of figurate number. It has 30 – sided polygon called triacontagon. The N-th triacontagonal number count’s the 30 number of dots and all other dots are surrounding with a common sharing corner and make a pattern. The first few triacontagonol numbers are 1, 30, 87, 172 ... 
 

Examples: 

Input: N = 30 
Output: Yes 
Explanation: 
Second triacontagonal number is 30.

Input: 32 
Output: No 

Approach: 

1. The Kth term of the triacontagonal number is given as: 
 

K^{th} Term = \frac{28*K^{2} - 26*K}{2}

2. As we have to check whether the given number can be expressed as a triacontagonal number or not. This can be checked as follows: 

=> N = \frac{28*K^{2} - 26*K}{2}       

=> K = \frac{26 + \sqrt{224*N + 676}}{56}       

3. Finally, check the value computed using this formula is an integer, which means that N is a triacontagonal number.

Below is the implementation of the above approach:

C++
// C++ program to check whether a
// number is an triacontagonal 
// number or not
#include <bits/stdc++.h>
using namespace std;

// Function to check whether a
// number is an triacontagonal 
// number or not
bool istriacontagonal(int N)
{
    float n
        = (26 + sqrt(224 * N + 676))
          / 56;

    // Condition to check whether a
    // number is an triacontagonal 
    // number or not
    return (n - (int)n) == 0;
}

// Driver Code
int main()
{
    
    // Given number 
    int i = 30;

    // Function call 
    if (istriacontagonal(i)) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    return 0;
}
Java
// Java program to check whether a
// number is an triacontagonal 
// number or not
class GFG{ 

// Function to check whether a
// number is an triacontagonal 
// number or not
static boolean istriacontagonal(int N) 
{ 
    float n = (float) ((26 + Math.sqrt(224 * N +
                                       676)) / 56);
    
    // Condition to check whether a
    // number is an triacontagonal 
    // number or not
    return (n - (int)n) == 0; 
} 

// Driver code 
public static void main(String[] args) 
{ 
    
    // Given number 
    int N = 30; 
    
    // Function call 
    if (istriacontagonal(N)) 
    { 
        System.out.print("Yes"); 
    } 
    else
    { 
        System.out.print("No");
    } 
} 
} 

// This code is contributed by shubham
Python3
# Python3 program to check whether a
# number is an triacontagonal 
# number or not
import math;

# Function to check whether a
# number is an triacontagonal 
# number or not
def istriacontagonal(N):

    n = (26 + math.sqrt(224 * N + 676)) // 56;

    # Condition to check whether a
    # number is an triacontagonal 
    # number or not
    return (n - int(n)) == 0;

# Driver Code

# Given number 
i = 30;

# Function call 
if (istriacontagonal(i)):
    print("Yes");
else:
    print("No");

# This code is contributed by Code_Mech
C#
// C# program to check whether a
// number is an triacontagonal 
// number or not
using System;
class GFG{ 

// Function to check whether a
// number is an triacontagonal 
// number or not
static bool istriacontagonal(int N) 
{ 
    float n = (float)((26 + Math.Sqrt(224 * N +
                                      676)) / 56);
    
    // Condition to check whether a
    // number is an triacontagonal 
    // number or not
    return (n - (int)n) == 0; 
} 

// Driver code 
public static void Main(String[] args) 
{ 
    
    // Given number 
    int N = 30; 
    
    // Function call 
    if (istriacontagonal(N)) 
    { 
        Console.Write("Yes"); 
    } 
    else
    { 
        Console.Write("No");
    } 
} 
}

// This code is contributed by sapnasingh4991
JavaScript
<script>
// javascript  program to check whether a
// number is an triacontagonal 
// number or not

// Function to check whether a
// number is an triacontagonal 
// number or not
function istriacontagonal( N) 
{ 
    let n = ((26 + Math.sqrt(224 * N +
                                       676)) / 56);
    
    // Condition to check whether a
    // number is an triacontagonal 
    // number or not
    return (n - parseInt(n)) == 0; 
} 

// Driver code 

    // Given number 
    let N = 30; 
    
    // Function call 
    if (istriacontagonal(N)) 
    {
          document.write("Yes");
    }
    else
    {
         document.write("No");
    }

    // This code is contributed by aashish1995 
</script>

Output
Yes

Time Complexity: O(log(n)), since sqrt() function has been used
Auxiliary Space: O(1)


Article Tags :
Practice Tags :

Similar Reads