Compare commits
2 Commits
101f5d139e
...
3e6add8dd0
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e6add8dd0 | |||
| c9b5f106f4 |
24
python/e124.py
Normal file
24
python/e124.py
Normal file
@@ -0,0 +1,24 @@
|
||||
from lib_prime import prime_factors
|
||||
|
||||
|
||||
def radical(n: int) -> int:
|
||||
fs = prime_factors(n)
|
||||
r = 1
|
||||
for f in set(fs):
|
||||
r *= f
|
||||
return r
|
||||
|
||||
|
||||
def euler_124():
|
||||
assert radical(504) == 42
|
||||
xs = []
|
||||
for n in range(1, 100001):
|
||||
xs.append((radical(n), n))
|
||||
xs = sorted(xs)
|
||||
return xs[10000 - 1][1]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
solution = euler_124()
|
||||
print("e124.py: " + str(solution))
|
||||
assert(solution == 21417)
|
||||
23
python/e125.py
Normal file
23
python/e125.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from lib_misc import is_palindrome
|
||||
|
||||
|
||||
def euler_125():
|
||||
upper = 10**8
|
||||
ns = set()
|
||||
for i in range(1, upper):
|
||||
i2 = i * i
|
||||
if i2 >= upper:
|
||||
break
|
||||
for j in range(i + 1, upper):
|
||||
i2 += (j * j)
|
||||
if i2 >= upper:
|
||||
break
|
||||
if is_palindrome(i2):
|
||||
ns.add(i2)
|
||||
return sum(ns)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
solution = euler_125()
|
||||
print("e125.py: " + str(solution))
|
||||
assert(solution == 2906969179)
|
||||
Reference in New Issue
Block a user