永发信息网

筛法求素数,求详解!谢谢。用c语言实现。。

答案:1  悬赏:10  手机版
解决时间 2021-01-07 02:48
  • 提问者网友:孤凫
  • 2021-01-06 10:52
筛法求素数,求详解!谢谢。用c语言实现。。
最佳答案
  • 五星知识达人网友:春色三分
  • 2021-01-06 12:20
#include
#include
#define N 100000
int flag[N];
int prime[20000];
void init()
{
memset(flag,0,sizeof(flag)); //全部置为0
int q = 0; //prime数组的下标
int i;
for(i = 2;i * i < N;i++)
{
if(flag[i]) continue; //表示i为前面某个数的倍数,肯定不是素数
prime[q++] = i;
for(int j = i * i;j < N;j += i) //将是i倍数的全部筛掉
{
flag[j] = 1;
}
}
for(i;i <= N;i++) //从i统计到N便是求得的2——N内的素数
{
if(flag[i] == 0) prime[q++] = i;
}
for(i = 0;i < 25;i++) //打印前25个素数供你检查,就是100以内的那25个素数
{
printf("%d ",prime[i]);
}
printf("\n");
}
int main()
{
init();
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯