Lua函数参数被视为字符串?

我试图在 Lua 中编写一个因数分解程序,除了其中一行代码以外,一切都有效。以下是代码:

function factor(a)
 print("factoring: " .. a)
 print()
 totali = 0
 totaldiv = 0
 for i = 1, a do
  if (a%i == 0) then
   if (i<a) then
    totaldiv = totaldiv + 1
   end
   print(i)
   i = i + 1
   totali = totali + 1
  else
   i = i + 1
  end
 end
 if totali == 2 then
  print("That is a prime number!")
 elseif totaldiv == a then
  print("That is a perfect number!")
 end
end
io.write("Enter a number to factor: ")
some = io.read()
factor(some)
io.read()

我发现有问题的行是 if (i<a) then。 我做错了什么? 谢谢!

点赞
用户5483382
用户5483382

if (i<tonumber(a)) then 应该可以工作。

你要求一个输入,它会作为一个字符串返回。

因此,你不能使用if (i<a) then,因为你通过 < 比较数字和字符串。

你根本无法说2小于'4'。

2015-11-09 10:36:14