summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2010-06-25 20:11:34 +0200
committerReiner Herrmann <reiner@reiner-h.de>2014-08-31 20:32:41 +0200
commit0c94d0dc40d58b6c47aa7b5e2e94472b2f50cbf7 (patch)
treea7eff19995381d5acfc9856a72a07bcd65ffb977 /src
parent64a32595762e2140c19c22beb32c6f63da6b710c (diff)
projecteuler solution 41
Diffstat (limited to 'src')
-rw-r--r--src/projecteuler/041.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/projecteuler/041.py b/src/projecteuler/041.py
new file mode 100644
index 0000000..04a6272
--- /dev/null
+++ b/src/projecteuler/041.py
@@ -0,0 +1,26 @@
+from common import pandigital, sieve
+
+primes = list(sieve(10**6).primes())
+numbers = [x for x in pandigital(1, 9).numbers(10) if x > 10**8]
+numbers += [x for x in pandigital(1, 8).numbers(10) if x > 10**7]
+numbers += [x for x in pandigital(1, 7).numbers(10) if x > 10**6]
+numbers += [x for x in pandigital(1, 6).numbers(10) if x > 10**5]
+numbers += [x for x in pandigital(1, 5).numbers(10) if x > 10**4]
+numbers += [x for x in pandigital(1, 4).numbers(10) if x > 10**3]
+numbers += [x for x in pandigital(1, 3).numbers(10) if x > 10**2]
+numbers += [x for x in pandigital(1, 2).numbers(10) if x > 10**1]
+
+numbers.sort(reverse=True)
+
+# check for divisibility up to sqrt(n), as sieve requires too much memory
+def is_prime(n):
+ for p in primes:
+ if n % p == 0:
+ return False
+ return True
+
+for n in numbers:
+ if is_prime(n):
+ print n
+ break
+