我正在尝试创建一个函数,该函数生成所有可以通过质数组合形成的数字,这些素数满足约束在某个数字的99%范围内且小于或等于该数字。 素数是 [2,3,5,7,11,13,17,19,23,29,31,37,41,43] 和指数是 [39,19,9,6,3,3,2,2,1,1,1,1,1,1]
我目前只使用其中一个素数然后停止的代码, 所以像2 ^ 1 * 3 ^ 1 * 5 ^ 1 * ... * 17 ^ 1之类的东西,它并没有增加指数。我不确定这里有什么问题,我不知道问题出在哪里。这是我的代码
def rec(start):
global freqA
global A
global exp
if start >=length:return True
print A," ",freqA
if A>= int(0.99*curt):
for i in xrange(length):
exp[i]=exponents[i]-freqA[i]
rec1(0)
for i in xrange(exponents[start]):
freqA[start]+=1
A*=primes[start]
if A<=curt and rec(start+1): return True
freqA[start]-=1
A/=primes[start]
return False
答案 0 :(得分:0)
线
exp[i]=exponents[i]-freqA[i]
不在循环中
以防万一:17! = 355 687 428 096 000