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

lua函数参数被视为字符串?,lua,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 to

我试图让这个程序在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()
功能系数(a)
打印(“保理:…a)
打印()
totali=0
totaldiv=0
对于i=1,a do
如果(a%i==0),则

if(i
if)(从
io.read
返回的值将是一个字符串,是的。如果需要,您需要将其转换为一个数字(lua在某些情况下也会隐式地这样做)@Etan Reisner,我如何将数字作为变量a?如果是,它会将6作为一个完美的数字输出,还是在它的另一部分我错了?在我看来,它并没有对实际的函数参数产生影响。是的"我不知道你到底遇到了什么问题。你的帖子被切断了,你没有说问题是什么。我只是给出了一个关于
io的一般性答案。阅读
和字符串值。修复你的帖子,清楚地解释确切的问题,我可能可以提供更多帮助。好吧……出于某种原因,它切断了我的帖子。我正在尝试让我的程序运行到o输出“这是一个完美的数字!”如果它的正确除数之和等于数字本身。从我所看到的,它甚至没有对这部分做任何事情。我试着在从第二个循环到最后一个循环之前打印totaldiv,它甚至没有打印任何东西…我很烂。好吧,我把最后一个a转换成了一个数字,它成功了!谢谢!替换
因子(一些)
带有
因子(一些+0)
因子(tonumber(一些))
是的,对不起……写这篇文章时我可能很累。现在已经修好了!