我有这个简单的lua函数,旨在解决连续素数和的问题.素数41可以写成六个连续素数的总和:
41 = 2 + 3 + 5 + 7 + 11 + 13
这是连续素数的最长和,它增加到低于一百的素数.这是我的功能:
function numOfConsecPrimes(limit)
a = allPrimes(limit/2)
length = table.getn(a)
sumSoFar = 0 innerSum = 0 finalSum = 0
pos = 1
items = 0 innerItems = 0 finalItems = 0
resetpos = pos
while resetpos < length do
pos = resetpos
resetpos = resetpos + 1
items = 0
sumSoFar = 0
while sumSoFar < limit and pos < length do
if isPrime(sumSoFar) == true then innerSum = sumSoFar innerItems = items end
print(sumSoFar)
sumSofar = sumSoFar + a[pos]
print(a[pos] .."->"..sumSoFar)
pos = pos + 1
items = items + 1
end
if innerItems > finalItems then finalItems = innerItems finalSum = innerSum end
end
end
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,sumSoFar只是不会改变.我在添加之前和之后打印它并a[pos]始终保持为零.我a[pos]按你所见打印,价值很好.发生什么了?
如果这是您的确切代码,那么您只需输入错字.
sumSofar = sumSoFar + a[pos]
Run Code Online (Sandbox Code Playgroud)
f将第一个资本化,sumSofar以便与其他所有资本相匹配.