Lua整数不会递增

Lua整数不会递增,lua,Lua,我有一个简单的lua函数,用来解决连续素数和的问题。 素数41可写成六个连续素数之和: 41=2+3+5+7+11+13 这是连续素数的最长总和,加在100以下的素数上。 这是我的职责: function numOfConsecPrimes(limit) a = allPrimes(limit/2) length = table.getn(a) sumSoFar = 0 innerSum = 0 finalSum = 0 pos = 1 it

我有一个简单的lua函数,用来解决连续素数和的问题。 素数41可写成六个连续素数之和:

41=2+3+5+7+11+13

这是连续素数的最长总和,加在100以下的素数上。 这是我的职责:

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

但出于某种原因,萨姆索法不会改变。我在添加[pos]之前和之后打印它,它始终保持为零。我正在打印一个[pos],正如您所看到的,值很好。发生了什么事?

如果这是您的准确代码,那么您只是有一个打字错误

sumSofar = sumSoFar + a[pos]

将第一个sumSofar中的f大写,使其与所有其他sumSofar匹配。

如果这是您的确切代码,那么您只需输入一个拼写错误即可

sumSofar = sumSoFar + a[pos]

将第一个sumSofar中的f大写,使其与所有其他sumSofar匹配。

items=0 innerItems=0 finalItems=0与items、innerItems、finalItems=0、0、0相同如果您使用了局部变量,您可以通过一些静态分析找到它。除了lhf所说的,您还可以更改全局变量表的元表,以便在您尝试从未定义的全局变量进行读取或写入时在运行时引发错误。我投票决定关闭,因为这只是一个输入错误问题。items=0 innerItems=0 finalItems=0与items、innerItems、finalItems=0、0相同,0如果您使用了局部变量,您可以通过一些静态分析发现这一点。除了lhf所说的,您还可以更改全局变量表的元表,以便在您尝试从未定义的全局变量读取或写入时,它在运行时抛出一个错误。我投票决定结束,因为这只是一个输入错误问题。谢谢,我知道我错过了一些非常愚蠢的事情汉克斯,我知道我错过了一些非常愚蠢的事情