我正在尝试做一个素数查找器,但看不出为什么它不起作用
本文关键字:查找 看不出 不起作用 为什么 一个 | 更新日期: 2023-09-27 18:31:05
我正在尝试做一个素数查找器,但看不出为什么它不起作用。当我运行调试测试时,控制台中不显示任何内容。有人可以检查一下并告诉我我做错了什么吗?
List<int> primes = new List<int>();
primes.Add(2);
primes.Add(3);
int maxPrime = 11; //The maximum found Primes
int primeCount = primes.Count; //Current Number of Primes
int num = 4; //Current Number
int x = 0; //
int curPrime = primes[x];
while (primeCount < maxPrime)
{
if (x != primeCount)
{
if (num % primes[x] == 0)
{
num++;
x = 0;
}
else
{
x++;
}
}
else
{
primes.Add(num);
primeCount=primes.Count;
x = 0;
}
}
primes.ForEach(i => Console.Write("{0}'t", i));
你有一个无限循环。
由于您从不修改primeCount
或maxPrime
,因此将始终如此:
while (primeCount < maxPrime)
为了结束该循环,您需要修改这两个值之一,以使条件的计算结果为 false。
(注意:除此之外,代码中似乎还有其他错误/问题。 例如,num = num++;
不会做你可能认为它做的事情。