【发布时间】:2015-11-16 17:22:48
【问题描述】:
我正试图让这个程序在 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。
我究竟做错了什么?
谢谢!
【问题讨论】:
-
您从
io.read得到的值将是一个字符串,是的。如果需要,您需要将其转换为数字(lua 在某些情况下也会隐式执行此操作)。 -
@Etan Reisner,如何将数字设为变量 a?如果是,它不会输出 6 作为一个完美的数字,还是我在它的另一部分错了?在我看来,它并没有提出实际的函数参数。我做了“i
-
我不知道您实际遇到了什么问题。你的帖子被切断了,你没有说问题是什么。我只是给出了一个关于
io.read和字符串值的通用答案。修正你的帖子,清楚地解释确切的问题,我也许可以提供更多帮助。 -
好吧...由于某种原因它切断了我的帖子。我试图让我的程序输出“这是一个完美的数字!”如果它的适当除数之和等于数字本身。从我所看到的,它甚至没有对那部分做任何事情。我尝试在倒数第二个结束之前的 for 循环之后打印 totaldiv ,它甚至不打印任何东西......我很讨厌这个。好的,我将最后一个 a 转换为一个数字,它起作用了!谢谢!
-
将
factor(some)替换为factor(some + 0)或factor(tonumber(some))
标签: lua