示例#1
0
文件: 051.py 项目: DaTimsta/euler
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
示例#2
0
文件: 063.py 项目: DaTimsta/euler
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
示例#3
0
文件: 057.py 项目: DaTimsta/euler
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)
示例#4
0
文件: 097.py 项目: DaTimsta/euler
# 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))