(C#)筛法求素数
题目:求100以内的素数
代码:int N = 100;
bool[] a = new bool[N + 1];
for (int i = 2; i <= N; i++)
a[i] = true;
for (int i = 2; i < N; i++)
{
if(a[i])
for (int j = i * 2; j <= N; j += i)
a[j] = false;
}
for (int i = 2; i <= N; i++)
if (a[i])
Console.WriteLine(i+" ");
思路:创建一个bool类型的数组,用下标来表示某数,用true或false表示是否为素数。其中用“倍数”来筛选掉非素数,并且某数一旦已经判断不是素数(在之前的倍数里出现过),就不再遍历他的倍数来优化提高效率
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。