40

C/C++ Program for How to check if a given number is Fibonacci number?

program solution

// C++ program to check if x is a perfect square 


#include <iostream> 
#include <math.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 Fibinacci Number, else false 
bool isFibonacci(int n) 

    // n is Fibinacci if one of 5*n*n + 4 or 5*n*n - 4 or both is a perferct 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; 

 

Output

1 is a Fibonacci Number

2 is a Fibonacci Number

3 is a Fibonacci Number

4 is a not Fibonacci Number

5 is a Fibonacci Number

6 is a not Fibonacci Number

7 is a not Fibonacci Number

8 is a Fibonacci Number

9 is a not Fibonacci Number

10 is a not Fibonacci Number