blob: 5ec15b41c2e99aa16a30b48a42e30f00fadde06d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#!/usr/bin/env python
from math import log10,sqrt
fn_1 = 1
fn_2 = 1
n = 3
def pandigital(n):
a = [False] * 10
while n > 0:
t = n % 10
if t == 0:
return False
if a[t]:
return False
a[t] = True
n = n / 10
return True
while True:
fn = (fn_1 + fn_2) % 1000000000
if fn > 100000000 and pandigital(fn):
# a[n] = pow((1+sqrt(5))/2, n)/sqrt(5)
# - pow((1-sqrt(5))/2, n)/sqrt(5)
log10_fn = n*log10((1+sqrt(5))/2) - log10(sqrt(5))
frac = log10_fn - int(log10_fn)
first9 = int(pow(10, frac)*100000000)
if pandigital(first9):
print(n)
break
fn_2 = fn_1
fn_1 = fn
n = n + 1
|