我在计算排列方面遇到了问题。该程序需要生成 permutations(xrange(num),num))并且对于每个排列,我必须计算连续素数的数量。即数字中每个相邻两位数的总和应为素数。 最大值' num'将是18
primes = permutations(xrange(1,num+1), num)
for val in primes:
for x in range(0,len(val-1)):
if (prime(val[x] + val[x+1])):
num_primes += 1
如果' num'范围从10到18,它给出了响应消息 '杀'经过漫长的等待。请帮我解决这个问题..
答案 0 :(得分:1)
有18个元素的6402373705728000个排列,因此迭代它们需要数年时间。考虑解决这个问题的分析解决方案应该更好。