筛选法处理素数
Posted qq-1585047819
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了筛选法处理素数相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h>
using namespace std; //筛选法处理素数
int arr[1000005]={0}; //运用了预处理的方法
int gdc()
{
arr[0]=arr[1]=1; //初始化0和1不是素数不要赋值为0
int p=1000005/2; //这里控制一半就行了
for(int i=0;i<=p;i++)
{
if(arr[i]==0) //如果这个是素数
{
int t=2*i;
while(t<1000005)
{
arr[t]=i;
t=t+i;
}
}
}
}
int main()
{
int n,m;
gdc(); //实行一回了就够了 预处理
while(cin>>n>>m)
{
int flag=0,jishu=0,biaoji;
while(n<=m)
{
int biaoji=0;
if(arr[n]==0)
{
if(!flag)
cout << n,flag=1,jishu++,n++;
else cout << " " << n,n++,jishu++;
if(jishu%10==0) cout << endl,biaoji=1,flag=0;
}
if(arr[n]!=0)
n++;
}
if(biaoji==0) printf("
");
else printf("
");
}
return 0;
}
以上是关于筛选法处理素数的主要内容,如果未能解决你的问题,请参考以下文章