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*n ^{2} + 4) or (5*n^{2} – 4) is a perfect square* (Source: Wiki).

`// 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 ` |

*chevron_right*

*filter_none*

**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

Please refer complete article on How to check if a given number is Fibonacci number? for more details!

## Recommended Posts:

- Java Program for nth multiple of a number in Fibonacci Series
- Java Program for n-th Fibonacci numbers
- Java Program for Zeckendorf\'s Theorem (Non-Neighbouring Fibonacci Representation)
- 3 Different ways to print Fibonacci series in Java
- Java Program to Check if all digits of a number divide it
- Java Program to check whether it is possible to make a divisible by 3 number using all digits in an array
- Java Program to check Armstrong Number
- Java program to check if a number is prime or not
- TCS Coding Practice Question | Fibonacci Series
- Java Program to Check if count of divisors is even or odd
- Java Program to check the validity of a Password using User Defined Exception
- Java Program for Number of elements with odd factors in given range
- Java Program for efficiently print all prime factors of a given number
- Java Program for Sum the digits of a given number
- Java Program for Number of jump required of given length to reach a point of form (d, 0) from origin in 2D plane
- Java Program for Program to calculate area of a Tetrahedron
- Java Program for Program to find area of a circle
- Java Program for Program for array rotation
- Check if a String starts with any of the given prefixes in Java
- Check if a given string is Pangram in Java