素数表的获取,素数线性筛法介绍,复杂度超低

版权声明:欢迎转载,如果转载,请注明转载地址,谢谢! https://blog.csdn.net/qq_40763929/article/details/84035439
//素数线性筛法,复杂度:O(nloglogn) 
//求100以内素数 
#include<iostream>
#include<cstring>
#include<string>

using namespace std;
bool vis[101];//标记是否为素数 
int prime[101];//储存素数 

int main()
{
	int n,m,j,k,i,T,t=0;
	memset(vis,true,sizeof(vis));//初始化,都默认为素数 
	for (i=2;i<100;i++)
	{
		if (vis[i]==true)//如果是素数 
		{
			prime[t++] = i;//把素数i储存进去 
			
			for (j=i+i;j<100;j+=i)//枚举素数i的倍数,然后标记为非素数 
			vis[j] = false;//标记为非素数 
		}
		
	}	
	for (i=0;i<t;i++)
	cout<<prime[i]<<endl;//打印答案 
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_40763929/article/details/84035439