编写一个C#程序,用“埃氏筛法”求2~ 100以内的素数。2~ 100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉4的倍数,以此类推....最后剩下的就是素数。
时间: 2024-02-19 16:58:15 浏览: 123
sieve-of-Eratosthenes.rar_JAVA埃氏筛法
下面是一个使用C#编写的“埃氏筛法”求2~100以内的素数的程序:
```csharp
using System;
class Program
{
static void Main(string[] args)
{
int max = 100;
bool[] isPrime = new bool[max + 1];
// 将所有数标记为素数
for (int i = 2; i <= max; i++)
{
isPrime[i] = true;
}
// 去掉2的倍数、3的倍数、4的倍数...
for (int i = 2; i <= Math.Sqrt(max); i++)
{
if (isPrime[i])
{
for (int j = i * i; j <= max; j += i)
{
isPrime[j] = false;
}
}
}
// 输出素数
Console.Write("2~100以内的素数有:");
for (int i = 2; i <= max; i++)
{
if (isPrime[i])
{
Console.Write(i + " ");
}
}
Console.ReadKey();
}
}
```
程序首先创建了一个长度为101的bool数组,用于标记2~100中每个数是否为素数。然后将所有数标记为素数,接着从2开始循环到根号100,如果当前数是素数,则将其倍数标记为非素数。最后输出剩下的素数。
阅读全文