25 lines
452 B
Python
25 lines
452 B
Python
|
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)
|