Python Program for How to check if a given number is 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, 144, ..
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: Wiki).
Python3
import math
def isPerfectSquare(x):
s = int (math.sqrt(x))
return s * s = = x
def isFibonacci(n):
return isPerfectSquare( 5 * n * n + 4 ) or isPerfectSquare( 5 * n * n - 4 )
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
Time Complexity: O(1)
Auxiliary Space: O(1)
Please refer complete article on How to check if a given number is Fibonacci number? for more details!
Last Updated :
08 Aug, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...