Programa para comprobar si N es un Número Hexagonal o no

Dado un número N , comprueba si es Hexagonal o no. Si es así, imprima «Sí», de lo contrario, emita «No».

Ejemplos: 

Entrada: N = 6 
Salida: Sí 
Explicación: 
6 es el segundo número hexagonal.

Entrada: N = 14 
Salida: No 
Explicación: 
El segundo número hexagonal es 6 mientras que el tercer número hexagonal es 15. Por lo tanto, 14 no es un número hexagonal. 
 

Enfoque: Para resolver el problema mencionado anteriormente, debemos tener en cuenta que el n-ésimo Número hexagonal viene dado por la fórmula: H(n) = n * (2n – 1) . La fórmula indica que el n-ésimo número hexagonal depende cuadráticamente de n. Por lo tanto, encuentra la raíz integral positiva de la ecuación N = H(n).

Por lo tanto, H(n) = n-ésimo número hexagonal y N es el Número dado. Por lo tanto resolver la siguiente ecuación:

Aquí, H(n) = N 
=> n * (2n – 1) = N 
=> 2 * n * n – n – N = 0 
La raíz positiva de esta ecuación es: 
n = (1 + sqrt(8 N + 1)) / 4 
 

Después de obtener el valor de n, verifique si es un número entero o no, donde n es un número entero si n – piso (n) es 0.

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

C++

// C++ Program to check
// if N is a Hexagonal Number
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to check
// if number is hexagonal
bool isHexagonal(int N)
{
    float val = 8 * N + 1;
 
    float x = 1 + sqrt(val);
 
    // Calculate the value for n
    float n = (x) / 4;
 
    // Check if n - floor(n)
    // is equal to 0
    if ((n - (int)n) == 0)
        return true;
 
    else
        return false;
}
 
// Driver code
int main()
{
    int N = 14;
 
    if (isHexagonal(N) == true)
        cout << "Yes" << endl;
 
    else
        cout << "No" << endl;
 
    return 0;
}

Java

// Java program to check
// if N is a hexagonal number
import java.util.*;
 
class GFG {
 
// Function to check
// if number is hexagonal
static boolean isHexagonal(int N)
{
    float val = 8 * N + 1;
 
    float x = 1 + (float)Math.sqrt(val);
 
    // Calculate the value for n
    float n = (x) / 4;
 
    // Check if n - floor(n)
    // is equal to 0
    if ((n - (int)n) == 0)
        return true;
 
    else
        return false;
}
 
// Driver code
public static void main(String[] args)
{
    int N = 14;
 
    if (isHexagonal(N) == true)
        System.out.println("Yes");
    else
        System.out.println("No");
}
}
 
// This code is contributed by offbeat

Python3

# Python3 program to check
# if N is a hexagonal number
from math import sqrt
 
# Function to check
# if number is hexagonal
def isHexagonal(N):
     
    val = 8 * N + 1
    x = 1 + sqrt(val)
 
    # Calculate the value for n
    n = x / 4
 
    # Check if n - floor(n)
    # is equal to 0
    if ((n - int(n)) == 0):
        return True
    else:
        return False
 
# Driver code
if __name__ == '__main__':
     
    N = 14
     
    if (isHexagonal(N) == True):
        print("Yes")
    else:
        print("No")
 
# This code is contributed by BhupendraSingh

C#

// C# program to check if
// N is a hexagonal number
using System;
 
class GFG{
 
// Function to check
// if number is hexagonal
static bool isHexagonal(int N)
{
    float val = 8 * N + 1;
    float x = 1 + (float)Math.Sqrt(val);
 
    // Calculate the value for n
    float n = (x) / 4;
 
    // Check if n - floor(n)
    // is equal to 0
    if ((n - (int)n) == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}
 
// Driver code
public static void Main(string[] args)
{
    int N = 14;
 
    if (isHexagonal(N) == true)
        Console.Write("Yes");
    else
        Console.Write("No");
}
}
 
// This code is contributed by rutvik_56

Javascript

<script>
 
// Javascript program to check
// if N is a hexagonal number
 
// Function to check
// if number is hexagonal
function isHexagonal(N)
{
    let val = 8 * N + 1;
    let x = 1 + Math.sqrt(val);
     
    // Calculate the value for n
    let n = (x) / 4;
     
    // Check if n - floor(n)
    // is equal to 0
    if ((n - parseInt(n)) == 0)
    {
        return true;
    }
    else
    {
        return false;
    }
}
 
// Driver code
let N = 14;
 
if (isHexagonal(N) == true)
{
    document.write("Yes" + "</br>");
}
else
{
    document.write("No");
}
 
// This code is contributed by Ankita saini
    
</script>
Producción: 

No

 

Complejidad de tiempo: 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 *