c语言题,求打印1亿内的素数程序!!
答案:1 悬赏:20
解决时间 2021-03-07 11:39
- 提问者网友:心裂忍耐
- 2021-03-06 22:16
要最短时间算出!
最佳答案
- 二级知识专家网友:陪衬角色
- 2021-03-06 23:31
// 筛法求素数
#include <iostream>
#include <cstring>
using namespace std;
const int N = 100000000;
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<<2<<" ";
for(int i=3; i<N; i+=2)
{
if(prime[i] == 0)
cout<<i<<" ";
}
}
我机子上大概10多秒
#include <iostream>
#include <cstring>
using namespace std;
const int N = 100000000;
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<<2<<" ";
for(int i=3; i<N; i+=2)
{
if(prime[i] == 0)
cout<<i<<" ";
}
}
我机子上大概10多秒
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯