筛选法求素数
作者:互联网
思想:
对于现在测试的数分两种,是素数和非素数
不论是否,其倍数都非素数,所以自己对其倍数舍去
缺点:需要一片内存区,以空间换时间
//求0~N的素数
#include<iostream>
#include<cmath>
using namespace std;
int isprime(int x){
if(x<=1)
return false;
int t=sqrt(x);
for(int i=2;i<=t;i++){
if(x%i==0)
return -1;
}
return 0;
}
int main(){
int n,m;
cin>>m>>n;
int a[n];
for(int i=m;i<=n;i++){
a[i]=isprime(i);
for(int j = i + i;j <= n;j += i){
a[j]=-1;
}
}
for(int i = m;i < n + 1;i++){
if(a[i]!=-1){
cout<<i<<endl;
}
}
}
标签:int,namespace,素数,数分,倍数,筛选,include,法求 来源: https://www.cnblogs.com/shuangquantang/p/16104879.html