How to Check if a Given Number is Fibonacci number Python (original) (raw)
Last Updated : 23 Jul, 2025
Fibonacci numbers are part of a famous sequence where each number is the sum of the two preceding ones, i.e. **F(n) = F(n-1) + F(n-2). The sequence starts as:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
Notice that every number is equal to the sum of its previous 2 numbers.
In this article, we will learn how to identify if a given number belongs to the Fibonacci series or not.
**Examples :
**Input: 8
**Output: Yes**Input: 31
**Output: No
Fibonacci Number Check Using a Mathematical Property
_A number **n _is a Fibonacci number if and only if **one _or **both _of ( **5*n² + 4) or (5*n² – 4) _is a **perfect square .
The above mathematical expression is derived from the closed-form expression of Fibonacci numbers (Binet’s Formula) and some number theory. It’s fast and doesn’t require generating the Fibonacci sequence. Let's look at the code implementation in Python:
Python `
import math
def is_perfect_sq(x): s = int(math.sqrt(x)) return s * s == x
def is_fibonacci(n): return is_perfect_sq(5 * n * n + 4) or is_perfect_sq(5 * n * n - 4)
for i in range(1, 7): if is_fibonacci(i): print(f"{i} is a Fibonacci Number") else: print(f"{i} is not a Fibonacci Number")
`
Output
1 is a Fibonacci Number 2 is a Fibonacci Number 3 is a Fibonacci Number 4 is not a Fibonacci Number 5 is a Fibonacci Number 6 is not a Fibonacci Number
**Explanation:
**1. is_perfect_sq(x):
- Calculates the integer **square root of **x.
- Returns **True if **x is a **perfect square, else False.
**2. is_fibonacci(n):
- Applies the mathematical identity:
- A number n is Fibonacci if **5*n² + 4 or 5*n² – 4 is a perfect square.
- Calls is**_perfect_sq() on both expressions to check this.
**3. Loop: Iterates through numbers 1 to 6 and prints whether each number is a Fibonacci number based on the result from **is_fibonacci().
Please refer this complete article on How to check if a given number is Fibonacci number? for more details!