diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2010-06-25 20:11:34 +0200 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:32:41 +0200 |
| commit | 0c94d0dc40d58b6c47aa7b5e2e94472b2f50cbf7 (patch) | |
| tree | a7eff19995381d5acfc9856a72a07bcd65ffb977 | |
| parent | 64a32595762e2140c19c22beb32c6f63da6b710c (diff) | |
projecteuler solution 41
| -rw-r--r-- | src/projecteuler/041.py | 26 |
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 + |
