埃拉托色尼筛网法 c语言怎么实现
答案:1 悬赏:70 手机版
解决时间 2021-03-26 13:33
- 提问者网友:最爱你的唇
- 2021-03-25 16:09
埃拉托色尼筛网法 c语言怎么实现
最佳答案
- 五星知识达人网友:白昼之月
- 2021-03-25 16:41
#include
#include
int main(int argc, char *argv[])
{
int d[100];
for(int i = 0; i < 100; ++i) //初始化为0到99
d[i] = i;
//把0和1剔出, 因为他既不是素数也不是合数
for(int i = 2; i < sqrt(100); ++i)
{
//因为2是素数,所以2的倍数一定是合数, 所以剔除。(我们的方式是将他置0,方便输出
if(d[i] == 0) continue;
for(int j = 2; j <= 100 / i; ++j)
{
d[i * j] = 0;
}
}
for(int i = 2; i < 100; ++i)
{
if(d[i] != 0)
printf("%d ",d[i]);
}
printf("
");
return 0;
}参考资料:
http://zh.wikipedia.org/wiki/%E5%9F%83%E6%8B%89%E6%89%98%E6%96%AF%E7%89%B9%E5%B0%BC%E7%AD%9B%E6%B3%95
#include
int main(int argc, char *argv[])
{
int d[100];
for(int i = 0; i < 100; ++i) //初始化为0到99
d[i] = i;
//把0和1剔出, 因为他既不是素数也不是合数
for(int i = 2; i < sqrt(100); ++i)
{
//因为2是素数,所以2的倍数一定是合数, 所以剔除。(我们的方式是将他置0,方便输出
if(d[i] == 0) continue;
for(int j = 2; j <= 100 / i; ++j)
{
d[i * j] = 0;
}
}
for(int i = 2; i < 100; ++i)
{
if(d[i] != 0)
printf("%d ",d[i]);
}
printf("
");
return 0;
}参考资料:
http://zh.wikipedia.org/wiki/%E5%9F%83%E6%8B%89%E6%89%98%E6%96%AF%E7%89%B9%E5%B0%BC%E7%AD%9B%E6%B3%95
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯