summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/projecteuler/124.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/projecteuler/124.py b/src/projecteuler/124.py
new file mode 100644
index 0000000..19486d6
--- /dev/null
+++ b/src/projecteuler/124.py
@@ -0,0 +1,31 @@
+from operator import itemgetter
+from common import sieve
+
+limit = 100000
+
+primes = sieve(limit).primes()
+prime_list = list(primes)
+prime_list.sort()
+
+def rad(n):
+ result = 1
+ if n in primes:
+ return n
+
+ for p in prime_list:
+ if result*p > n:
+ break
+ if n % p == 0:
+ result *= p
+ return result
+
+
+
+radlist = []
+
+for n in xrange(1, limit+1):
+ radlist.append((n, rad(n)))
+
+radlist.sort(key=itemgetter(1))
+print radlist[10000-1][0]
+