这是确定数字是否为质数的代码的一部分。我知道可以用其他方法解决此问题,但是我无法弄清楚为什么如果我输入“ 5”作为数字,此循环将不会停止。除数在第三个“除数++”之后达到5; (除数从2开始),但是while循环不会退出。 谁能帮我吗?
do
{
if (number % divisor == 0)
{
Console.WriteLine("Number is not a prime.");
}
if (divisor == number - 1)
{
Console.WriteLine("Number is prime.");
}
divisor++;
} while (number % (divisor -1) != 0 || divisor != number);
答案 0 :(得分:2)
条件可能应该是... != 0 && divisor != number
。
差异是&&而不是||。
答案 1 :(得分:2)
while(数字%(除数-1)!= 0 ||除数!=数字)
以上声明永远不会让它中断。
例如,如果除数为5,则 5%(5-1)将1并继续循环
当除数为6时
6!= 5并将继续
您应该使用
while(数字%(除数)!= 0);