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

C++求N以内所有质数
2024-12-21 21:13:19
推荐回答(4个)
回答1:

#include
#include
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< while (1);//如要查看屏幕输出结果,请加上
return 0;
}

回答2:

我的方法肯定比楼上的快

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

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

回答3:

#include

#include

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<";//cout<while
(1);//如要查看屏幕输出结果,请加上
return
0;
}

回答4:

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

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