我正在尝试做一个素数查找器,但看不出为什么它不起作用

本文关键字:查找 看不出 不起作用 为什么 一个 | 更新日期: 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));

我正在尝试做一个素数查找器,但看不出为什么它不起作用

你有一个无限循环。

由于您从不修改primeCountmaxPrime,因此将始终如此:

while (primeCount < maxPrime)

为了结束该循环,您需要修改这两个值之一,以使条件的计算结果为 false。

(注意:除此之外,代码中似乎还有其他错误/问题。 例如,num = num++;不会做你可能认为它做的事情。