summaryrefslogtreecommitdiff
path: root/041.py
blob: 04a62727dffcb57212db764f4db74bc516a3916a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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