Programa para comprobar si N es un Número Nonagonal

Dado un número N , la tarea es verificar si N es un Número Nonagonal o no. Si el número N es un número nogonal , escriba «Sí» , de lo contrario, escriba «No» .

El número nonagonal es un número figurado que extiende el concepto de números triangulares y cuadrados al nonágono. Específicamente, los enésimos números nonagonales cuentan la cantidad de puntos en un patrón de n nonágonos anidados ( polígono de 9 lados ), todos compartiendo una esquina común, donde el enésimo nonágono en el patrón tiene lados hechos de i puntos separados una unidad entre sí . Los primeros Números Nonagonales son 1, 9, 24, 46, 75, 111, 154, … 
 

Ejemplos:  

Entrada: N = 9 
Salida: Sí 
Explicación: 
El segundo número nonagonal es 9.

Entrada: N = 20 
Salida: No 

Acercarse:  

1. El K -ésimo término del número no ogonal se da como
K^{th} Term = \frac{7*K^{2} - 5*K}{2}

2. Como tenemos que comprobar que el número dado se puede expresar como un Número Nonagonal o no. Esto se puede comprobar como: 

=>  N = \frac{7*K^{2} - 5*K}{2}
=> K = \frac{5 + \sqrt{56*N + 25}}{14}

3. Si el valor de K calculado con la fórmula anterior es un número entero, entonces N es un número nogonal.

4. Si no, N no es un Número Nonagonal.

A continuación se muestra la implementación del enfoque anterior: 

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if N is a
// is a Nonagonal Number
bool isnonagonal(int N)
{
    float n
        = (5 + sqrt(56 * N + 25))
          / 14;
 
    // Condition to check if the
    // number is a nonagonal number
    return (n - (int)n) == 0;
}
 
// Driver Code
int main()
{
    // Given Number
    int N = 9;
 
    // Function call
    if (isnonagonal(N)) {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    return 0;
}

Java

// Java program for the above approach
import java.lang.Math;
 
class GFG{
     
// Function to check if N is a
// nonagonal number
public static boolean isnonagonal(int N)
{
    double n = (5 + Math.sqrt(56 * N + 25)) / 14;
     
    // Condition to check if the
    // number is a nonagonal number
    return (n - (int)n) == 0;
}
 
// Driver code    
public static void main(String[] args)
{
         
    // Given number
    int N = 9;
     
    // Function call
    if (isnonagonal(N))
    {
        System.out.println("Yes");
    }
    else
    {
        System.out.println("No");
    }
}
}
 
// This code is contributed by divyeshrabadiya07

Python3

# Python3 program for the above approach
 
# Function to check if N is a
# nonagonal number
def isnonagonal(N):
    n = (5 + pow((56 * N + 25), 1 / 2)) / 14;
 
    # Condition to check if the
    # number is a nonagonal number
    return (n - int(n)) == 0;
 
# Driver code
if __name__ == '__main__':
 
    # Given number
    N = 9;
 
    # Function call
    if (isnonagonal(N)):
        print("Yes");
    else:
        print("No");
 
# This code is contributed by Rajput-Ji

C#

// C# program for the above approach
using System;
 
class GFG{
     
// Function to check if N is a
// nonagonal number
public static bool isnonagonal(int N)
{
    double n = (5 + Math.Sqrt(56 * N + 25)) / 14;
     
    // Condition to check if the
    // number is a nonagonal number
    return (n - (int)n) == 0;
}
 
// Driver code    
public static void Main(string[] args)
{
         
    // Given number
    int N = 9;
     
    // Function call
    if (isnonagonal(N))
    {
        Console.Write("Yes");
    }
    else
    {
        Console.Write("No");
    }
}
}
 
// This code is contributed by rutvik_56

Javascript

<script>
// Javascript program for the above approach
 
// Function to check if N is a
// is a Nonagonal Number
function isnonagonal(N)
{
    let n
        = (5 + Math.sqrt(56 * N + 25))
          / 14;
 
    // Condition to check if the
    // number is a nonagonal number
    return (n - parseInt(n)) == 0;
}
 
// Driver Code
 
// Given Number
let N = 9;
 
// Function call
if (isnonagonal(N))
{
    document.write("Yes");
}
else
{
    document.write("No");
}
 
// This code is contributed by subhammahato348.
</script>
Producción: 

Yes

 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por spp____ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *