我试图计算给定数字中素数的总和。例如,对于数字123456,结果将是10,因为2 + 3 + 5 = 10.一个数字素数的总和 - Lua
我试图编写一个代码,在Lua中这样做,但我有一些问题。
首先,这里是代码:
function isPrime(num)
if(num == 1 or (num ~= 2 and num%2 == 0)) then
return false
end
for i=3, math.sqrt(num), 2 do
if(num%i == 0) then
return false
end
end
return true
end
function sumOfPrimes(num)
local sum = 0
for digit in string.gmatch(num,"%d") do
local prime = isPrime(digit)
if(isPrime(digit)) then
sum = sum + digit
end
print(digit)
end
return sum
end
function main()
print(sumOfPrimes(123456))
end
main()
它returnes 9,而不是10,我注意到的另一件事是它增加了1还总结,但1是不是质。这里有什么问题?
'string.gmatch'返回一个字符串不是一个数字。你需要使用'tonumber'来转换。 – 2014-12-03 18:25:01