1

只是试图执行一个小的 Lua 脚本,但不幸的是我做错了。我没有更多的想法可能是什么错误。

function checkPrime( n )
    for i = 2, n-1, 1 do
        if n % i == 0 then
            return false
        end
    end
    return true
end

口译员说:

lua: /home/sebastian/luatest/test.lua:3: `then' expected near `%'

我认为这不是一件大事,也许很清楚出了什么问题。但不知何故,我现在看不到它。

4

2 回答 2

6

可能有一些版本问题,检查你的lua版本。使用 '%' 作为取模的中缀运算符只能在 Lua 5.1 中使用,在 5.0 中尚不支持。尝试math.mod改用:

if math.mod(n,i) == 0 then

编辑:另请注意,在 5.1 中,math.mod仍然存在,但已重命名为math.fmod. 目前,旧名称仍然有效,但在未来版本中可能会删除支持。

于 2009-01-20T20:48:13.623 回答
-1

您是否尝试将“n% i == 0”括在括号中?愚蠢的问题,但有时会被忽视!

于 2009-01-20T20:36:42.507 回答