打印从 0 到 10,000 的质数

San*_*res 2 c# primes for-loop numbers do-while

我目前正在尝试创建一个程序,该程序仅使用 for、do while 和 ifs 来打印从 0 到 10,000 的素数。我创建了这个程序,但它没有运行

static void Main(string[] args)
    { 
        for (int x = 2; x < 10000; x++)
        { 
            for (int y = 1; y < x; y++)
            { 
                if (x % y != 0)
                {
                    Console.WriteLine(x); 
                }  
            }
            Console.ReadKey();
        }
Run Code Online (Sandbox Code Playgroud)

我不知道问题出在哪里,也不知道 for inside 是否重置。

Ank*_*kar 5

试试这个没有bool变量!!!:

static void Main(string[] args)
{
    for (int x = 2; x < 10000; x++)
    {
        int isPrime = 0;
        for (int y = 1; y < x; y++)
        {
            if (x % y == 0)
                isPrime++;

            if(isPrime == 2) break;
        }
        if(isPrime != 2)
           Console.WriteLine(x);

        isPrime = 0;
    }
    Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud)

检查Console.ReadKey();它应该在上层for循环之后,您甚至可以更改上层for战利品的条件,<=因为10000也需要检查prime条件。