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 是否重置。
试试这个没有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
条件。