Lua 计算素数的程序中的错误行为
这个程序坚持35是一个素数,即使一步一步地进行,程序应该达到计算35%5的点,然后忽略这个数字(因为结果是0)。我没有检查每个数字,但它似乎只显示素数(除了与35无关的数字,如135)Lua 计算素数的程序中的错误行为,lua,Lua,这个程序坚持35是一个素数,即使一步一步地进行,程序应该达到计算35%5的点,然后忽略这个数字(因为结果是0)。我没有检查每个数字,但它似乎只显示素数(除了与35无关的数字,如135) 在%案例中,您没有重置denom if num%denom==0 then num=num+1 else 因此,当您通过此测试时,您将从上一个分母开始测试下一个数字,而不是再次从2开始 简单调试打印循环中的打印行打印出denom和num会向您显示这一点(事实上,我就是这样发现的)。您只需要输出三个素数就
在
%
案例中,您没有重置denom
if num%denom==0 then
num=num+1
else
因此,当您通过此测试时,您将从上一个分母开始测试下一个数字,而不是再次从2
开始
简单调试打印循环中的打印行打印出
denom
和num
会向您显示这一点(事实上,我就是这样发现的)。您只需要输出三个素数就可以看到问题。修复了它,在num=num+1之后设置denom=2
print ('How many prime numbers do you require?')
primes = io.read("*n")
print ('Here you go:')
num,denom,num_primes=2,2,0
while num_primes<primes do
if denom<num then
if num%denom==0 then
num=num+1
denom=2
else
denom=denom+1
end
else
print(num)
num=num+1
num_primes=num_primes+1
denom=2
end
end
print('需要多少素数?'))
素数=io.read(“*n”)
打印('给你:')
num,denom,num_primes=2,2,0
而num_素数
if num%denom==0 then
num=num+1
else
print ('How many prime numbers do you require?')
primes = io.read("*n")
print ('Here you go:')
num,denom,num_primes=2,2,0
while num_primes<primes do
if denom<num then
if num%denom==0 then
num=num+1
denom=2
else
denom=denom+1
end
else
print(num)
num=num+1
num_primes=num_primes+1
denom=2
end
end