C++求N以内所有的质数

来源:百度知道 编辑:UC知道 时间:2024/07/04 10:26:26
C++求N以内所有质数

#include <iostream>
#include <cmath>
using namespace std;
bool prime(int x){
int y;
for (y=2;y<=sqrt(x);y++)
if (x%y==0) return false;
return true;
}
int main (){
int n,i;
cin>>n;
if (n>=2) cout<<"2 ";//cout<<"2\n";
for (i=3;i<=n;i++)
if (prime(i)) cout<<i<<" ";//cout<<i<<"\n";
while (1);//如要查看屏幕输出结果,请加上
return 0;
}

// 筛法求素数
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1000;
int prime[N];

int main()
{
memset(prime, 0, sizeof(prime));
for(int i=3; i<N; i+=2)
{
if(prime[i] == 0) // 用素数来筛
{
for(int j=i+i; j<N; j+=i) // 素数的倍数肯定是合数
prime[j] = 1;
}
}
// 输出结果
cout<