¿Cómo verificar si un número dado es el número de Fibonacci?

Dado un número ‘n’, cómo comprobar si n es un número de Fibonacci . Los primeros números de Fibonacci son 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, .. 
Ejemplos: 
 

Input : 8
Output : Yes

Input : 34
Output : Yes

Input : 41
Output : No

C++

// C++ program to check if x is a perfect square
#include <bits/stdc++.h>
using namespace std;
 
// A utility function that returns true if x is perfect
// square
bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s * s == x);
}
 
// Returns true if n is a Fibonacci Number, else false
bool isFibonacci(int n)
{
    // n is Fibonacci if one of 5*n*n + 4 or 5*n*n - 4 or
    // both is a perfect square
    return isPerfectSquare(5 * n * n + 4)
           || isPerfectSquare(5 * n * n - 4);
}
 
// A utility function to test above functions
int main()
{
    for (int i = 1; i <= 10; i++)
        isFibonacci(i)
            ? cout << i << " is a Fibonacci Number \n"
            : cout << i << " is a not Fibonacci Number \n";
    return 0;
}
 
// This code is contributed by Sania Kumari Gupta (kriSania804)

C

// C program to check if x is a perfect square
#include <math.h>
#include <stdbool.h>
#include <stdio.h>
 
// A utility function that returns true if x is perfect
// square
bool isPerfectSquare(int x)
{
    int s = sqrt(x);
    return (s * s == x);
}
 
// Returns true if n is a Fibonacci Number, else false
bool isFibonacci(int n)
{
    // n is Fibonacci if one of 5*n*n + 4 or 5*n*n - 4 or
    // both is a perfect square
    return isPerfectSquare(5 * n * n + 4)
           || isPerfectSquare(5 * n * n - 4);
}
 
// A utility function to test above functions
int main()
{
    for (int i = 1; i <= 10; i++) {
        if (isFibonacci(i))
            printf("%d is a Fibonacci Number \n", i);
        else
            printf("%d is a not Fibonacci Number \n", i);
    }
    return 0;
}
 
// This code is contributed by Sania Kumari Gupta (kriSania804)

Java

// Java program to check if x is a perfect square
 
class GFG
{
    // A utility method that returns true if x is perfect square
    static  boolean isPerfectSquare(int x)
    {
        int s = (int) Math.sqrt(x);
        return (s*s == x);
    }
      
    // Returns true if n is a Fibonacci Number, else false
    static boolean isFibonacci(int n)
    {
        // n is Fibonacci if one of 5*n*n + 4 or 5*n*n - 4 or both
        // is a perfect square
        return isPerfectSquare(5*n*n + 4) ||
               isPerfectSquare(5*n*n - 4);
    }
 
    // Driver method
    public static void main(String[] args)
    {
        for (int i = 1; i <= 10; i++)
             System.out.println(isFibonacci(i) ?  i +  " is a Fibonacci Number" :
                                                  i + " is a not Fibonacci Number");
    }
}
//This code is contributed by Nikita Tiwari

Python

# python program to check if x is a perfect square
import math
 
# A utility function that returns true if x is perfect square
def isPerfectSquare(x):
    s = int(math.sqrt(x))
    return s*s == x
 
# Returns true if n is a Fibonacci Number, else false
def isFibonacci(n):
 
    # n is Fibonacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    # is a perfect square
    return isPerfectSquare(5*n*n + 4) or isPerfectSquare(5*n*n - 4)
    
# A utility function to test above functions
for i in range(1,11):
     if (isFibonacci(i) == True):
         print i,"is a Fibonacci Number"
     else:
         print i,"is a not Fibonacci Number "

C#

// C# program to check if
// x is a perfect square
using System;
 
class GFG {
 
    // A utility function that returns
    // true if x is perfect square
    static bool isPerfectSquare(int x)
    {
        int s = (int)Math.Sqrt(x);
        return (s * s == x);
    }
 
    // Returns true if n is a
    // Fibonacci Number, else false
    static bool isFibonacci(int n)
    {
        // n is Fibonacci if one of
        // 5*n*n + 4 or 5*n*n - 4 or
        // both are a perfect square
        return isPerfectSquare(5 * n * n + 4) ||
               isPerfectSquare(5 * n * n - 4);
    }
 
    // Driver method
    public static void Main()
    {
        for (int i = 1; i <= 10; i++)
            Console.WriteLine(isFibonacci(i) ? i +
                              " is a Fibonacci Number" : i +
                              " is a not Fibonacci Number");
    }
}
 
// This code is contributed by Sam007

PHP

<?php
// PHP program to check if
// x is a perfect square
 
// A utility function that
// returns true if x is
// perfect square
function isPerfectSquare($x)
{
    $s = (int)(sqrt($x));
    return ($s * $s == $x);
}
 
// Returns true if n is a
// Fibonacci Number, else false
function isFibonacci($n)
{
    // n is Fibonacci if one of
    // 5*n*n + 4 or 5*n*n - 4 or
    // both is a perfect square
    return isPerfectSquare(5 * $n * $n + 4) ||
           isPerfectSquare(5 * $n * $n - 4);
}
 
// Driver Code
for ($i = 1; $i <= 10; $i++)
if(isFibonacci($i))
echo "$i is a Fibonacci Number \n";
else
echo "$i is a not Fibonacci Number \n" ;
 
// This code is contributed by mits
?>

Javascript

<script>
// javascript program to check if x is a perfect square
 
// A utility function that returns true if x is perfect square
function isPerfectSquare( x)
{
    let s = parseInt(Math.sqrt(x));
    return (s * s == x);
}
 
// Returns true if n is a Fibonacci Number, else false
function isFibonacci( n)
{
 
    // n is Fibonacci if one of 5*n*n + 4 or 5*n*n - 4 or both
    // is a perfect square
    return isPerfectSquare(5 * n * n + 4) ||
           isPerfectSquare(5 * n * n - 4);
}
 
// A utility function to test above functions
  for (let i = 1; i <= 10; i++)
     isFibonacci(i)?  document.write( i + " is a Fibonacci Number <br/>"):
                     document.write(i + " is a not Fibonacci Number <br/>") ;
                      
// This code is contributed by Rajput-Ji
 
</script>

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *