Problem 41
We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once. For example, 2143 is a 4-digit pandigital and is also prime.What is the largest n-digit pandigital prime that exists?
如果一个n位数恰好使用了1至n每个数字各一次,我们就称其为全数字的。例如,2143就是一个4位全数字数,同时它恰好也是一个素数。最大的全数字的素数是多少?
def full_permutation(number_str):
if len(number_str) == 1:
return number_str
result = []
for i in range(len(number_str)):
if i == len(number_str) - 1:
substr = number_str[:i]
else:
substr = number_str[:i] + number_str[i+1:]
for j in full_permutation(substr):
permu = (number_str[i] + j)
result.append(permu)
return result
def isprime(n):
if n <= 1:
return False
for i in range(2,int(n**0.5+1)):
if n % i == 0:
return False
return True
maxnum = 0
for i in full_permutation('1234567'):
if isprime(int(i)):
if maxnum < int(i):
maxnum = int(i)
print(maxnum)