38 lines
975 B
Python
38 lines
975 B
Python
|
|
import itertools
|
|
from primes import is_prime
|
|
import string
|
|
|
|
|
|
def is_pandigital(num):
|
|
digits = string.digits[1:] + '0'
|
|
digits = digits[:len(str(num))]
|
|
if sorted(str(num)) == sorted(digits):
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
|
|
if __name__ == '__main__':
|
|
results = []
|
|
numbers = [int(''.join(x)) for x in itertools.permutations(string.digits)]
|
|
primes = [x for x in numbers if is_pandigital(x)]
|
|
for prime in primes:
|
|
if int(str(prime)[1:4]) % 2 != 0:
|
|
continue
|
|
if int(str(prime)[2:5]) % 3 != 0:
|
|
continue
|
|
if int(str(prime)[3:6]) % 5 != 0:
|
|
continue
|
|
if int(str(prime)[4:7]) % 7 != 0:
|
|
continue
|
|
if int(str(prime)[5:8]) % 11 != 0:
|
|
continue
|
|
if int(str(prime)[6:9]) % 13 != 0:
|
|
continue
|
|
if int(str(prime)[7:10]) % 17 != 0:
|
|
continue
|
|
results.append(prime)
|
|
print(results)
|
|
print(sum(results))
|