#include<iostream>
using namespace std;
#define MAX_NUM 1000000
char isPrime[MAX_NUM + 10];//因为n个元素下标是到n-1,所以需要+1(至少加一)
int main()
{
for(int i=2;i<=MAX_NUM;i++)
{
isPrime[i]=1;//类似bool型变量,0为错。非0为正确
}
for(int i=2;i<=MAX_NUM;i++)
{
if(isPrime[i])//这么写表意为true
for(int j = 2*i;j<=MAX_NUM;j+=i)//令所有不是素数的下标为0
{
isPrime[j] = 0;
}
}
for(int i=2;i<=MAX_NUM;i++)
{
if(isPrime[i])//如果为true则输出
cout<<i<<endl;
}
return 0;
}
筛法求素数()
最新推荐文章于 2025-08-07 15:32:36 发布