Lua 计算素数的程序中的错误行为

Lua 计算素数的程序中的错误行为,lua,Lua,这个程序坚持35是一个素数,即使一步一步地进行,程序应该达到计算35%5的点,然后忽略这个数字(因为结果是0)。我没有检查每个数字,但它似乎只显示素数(除了与35无关的数字,如135) 在%案例中,您没有重置denom if num%denom==0 then num=num+1 else 因此,当您通过此测试时,您将从上一个分母开始测试下一个数字,而不是再次从2开始 简单调试打印循环中的打印行打印出denom和num会向您显示这一点(事实上,我就是这样发现的)。您只需要输出三个素数就

这个程序坚持35是一个素数,即使一步一步地进行,程序应该达到计算35%5的点,然后忽略这个数字(因为结果是0)。我没有检查每个数字,但它似乎只显示素数(除了与35无关的数字,如135)


%
案例中,您没有重置
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