def get_n_digit_primes(n): prime_list = [] for i in prime_sieve(10**n): if num_digits(i) == n: prime_list.append(i) return prime_list
def p063(n): lower_bound = ceil(10**((n-1)/n)) i = lower_bound num = i**n count = 0 while num_digits(num) == n: print(i, num) i += 1 count += 1 num = i**n return count
from euler import num_digits from time import time T = time() # add a number num to the fraction frac # return the new fraction def add_num_frac(num, frac): return [num*frac[1] + frac[0], frac[1]] def rev_frac(frac): return frac[::-1] def P057(iter): result = rev_frac(add_num_frac(2, [1, 2])) for i in range(0, iter-2): result = rev_frac(add_num_frac(2, result)) result = add_num_frac(1, result) return result limit = 1000 count = 0 for i in range(1, limit+1): f = P057(i) if num_digits(f[0]) > num_digits(f[1]): count += 1 print(count) print("time elapsed ", time() - T)
# https://projecteuler.net/problem=97 from euler import num_digits from time import time T = time() s = 28433 for i in range(0, 7830457): s *= 2 if num_digits(s) == 11: s %= (10**10) print(s + 1) print('Time elapsed:', time() - T) # notice that python can do it easily (and faster) just by inputting the formula # print((28433 * (2 ** 7830457) + 1) % (10**10))