Situatie
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
Solutie
# 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 "
Leave A Comment?