連続素数の問題を解決するために設計されたこの単純な lua 関数があります。素数 41 は、6 つの連続する素数の合計として記述できます。
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
ただ、なぜかsumSoFar
変わらない。の追加の前後に印刷してa[pos]
いますが、常にゼロのままです。ご覧のとおり印刷a[pos]
していますが、値は問題ありません。どうしたの?