From 1c76beb0d4ccf57d2db84cf417f37a3a155fb905 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Sat, 26 May 2018 16:12:24 +0800 Subject: 58, 76, 97, 104 --- euler104.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 euler104.py (limited to 'euler104.py') diff --git a/euler104.py b/euler104.py new file mode 100644 index 0000000..5ec15b4 --- /dev/null +++ b/euler104.py @@ -0,0 +1,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 -- cgit v1.2.3