# Python Program for How to check if a given number is the Fibonacci number?

Given a number \’n\’, how to check if n is a Fibonacci number. First few Fibonacci numbers are 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 141, ..

Examples :

Input : 8
Output : Yes

Input : 34
Output : Yes

Input : 41
Output : No

Following is an interesting property about Fibonacci numbers that can also be used to check if a given number is Fibonacci or not.
A number is Fibonacci if and only if one or both of (5*n2 + 4) or (5*n2 – 4) is a perfect square (Source:

 # 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 Fibinacci Number, else false def isFibonacci(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) 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 "

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