我想找到解决方案Spoiler alert Euler #41 problem
。我问的问题是它的子问题。我有问题的解决方案,但问题在于解决方案。这是我正在检查的实际内容:-
large = 0
x = ''
for i in range(1,10):
x += '%d' %i
for perm in permutations(x):
if(isPrime(int(perm))):
large = perm
print large
这是排列函数:-
def permutations(val):
res = []
if len(val) == 1:
res = [val]
else:
for i, c in enumerate(val):
for perm in permutations(val[:i]+val[i+1:]):
res += [c+perm]
return res
上面的程序在从 1 到 987654321 的排列中找到所有素数的排列。
但问题是large = 7652413 之后,large 没有进一步增长。程序在大约 3 秒内达到此值,但程序在大约 4 分钟内完成。所以我想知道是否有任何方法可以节省时间。
这个问题也可以概括为一种查找函数是否告诉您该函数是否花费太长时间才能获得所需结果的方法。