Solve 133 and 134.

main
felixm 2024-04-25 19:01:38 -04:00
parent c3f24f445e
commit a0c906bd58
2 changed files with 63 additions and 0 deletions

23
python/e133.py Normal file
View File

@ -0,0 +1,23 @@
from lib_prime import primes
def r_modulo_closed_form(n, m):
assert n > 0 and m > 0
return ((pow(10, n, 9 * m) - 1) // 9) % m
def euler_132():
n = 10**20
r = 0
for p in primes(100_000):
if r_modulo_closed_form(n, p) == 0:
pass
else:
r += p
return r
if __name__ == "__main__":
solution = euler_132()
print("e132.py: " + str(solution))
assert solution == 453647705

40
python/e134.py Normal file
View File

@ -0,0 +1,40 @@
from lib_prime import primes
from math import log, ceil
def s(p1, p2):
p1l = ceil(log(p1, 10))
base = 10**p1l
for lhs in range(base, 10**12, base):
r = lhs + p1
if r % p2 == 0:
return r
assert False
def s2(p1, p2):
# Invert, always invert ;)
p1l = ceil(log(p1, 10))
base = 10**p1l
c = p2
while True:
if c % base == p1:
return c
c += p2
def euler_134():
r = 0
ps = primes(10**6 + 10) # p1 < 10**6 but p2 is the first p > 10**6
for i in range(2, len(ps) - 1):
p1, p2 = ps[i], ps[i + 1]
sc = s(p1, p2)
r += sc
return r
if __name__ == "__main__":
solution = euler_134()
print("e134.py: " + str(solution))
assert solution == 18613426663617118