当前位置: 代码迷 >> C语言 >> 关于埃拉托色尼筛网法(Sieve of Erastosthenes),请教!!
  详细解决方案

关于埃拉托色尼筛网法(Sieve of Erastosthenes),请教!!

热度:403   发布时间:2007-06-05 17:24:58.0
关于埃拉托色尼筛网法(Sieve of Erastosthenes),请教!!

学完今天的C语言课程,一习题如下:

用埃拉托色尼筛网法(Sieve of Erastosthenes)来产生质数

埃拉托色尼筛网法(Sieve of Erastosthenes)的聚体步骤:

1,定义整数数组P,将所有的数组元素设置为0;
2,设置变量i等于2
3,如果i>n,算法结束.
4,如果Pi等于0,那么i是一个质数.
5,对于所有的正整数j,如果i*j<=n,将数组元素Pi*j设置为1.
6,将i的值增加1,回到第3步.


请哪位高手解释一下每个步骤的含义呀..还有中间的的n是代表什么呀.不一定要帮我写出程序出来,但希望各位高手帮我分析一下这些步骤的意思.谢谢了

搜索更多相关的解决方案: Sieve  埃拉托色尼  筛网  质数  整数  

----------------解决方案--------------------------------------------------------
对于所有的正整数j,如果i*j<=n,将数组元素Pi*j设置为1.
我也不清楚啊,那当j>n时怎么办啊.
那就跟本就不行啊
----------------解决方案--------------------------------------------------------
有没有哪位高手来解释一下.小弟很感谢呀..急急.
----------------解决方案--------------------------------------------------------
  兄弟你的书名字叫什么,有可能跟我学的一样。
----------------解决方案--------------------------------------------------------
没人知道吗?各位达人帮帮忙呀..

看的是一个美国人的编的C语言编程.第三版
----------------解决方案--------------------------------------------------------

是不是[美]Stephen G.Kochan著 张小潘译 Programming in C 一本全面的C语言入门教程

这题我做过了,等下给你程序。


----------------解决方案--------------------------------------------------------
有哪位达人知道呀..不一定要程序呀..
只想讲解一下..
----------------解决方案--------------------------------------------------------

#include<stdio.h>

void main()
{
int i,j,n,P[10];
n=10;
for(i=0;i<n;++i)
P[i]=0;
for(i=2;i<n;++i)
{
if(P[i]==0)
printf("%i ",i);
for(j=1;i*j<=n;j++)
P[i*j]=1;
}
getch();
}

你自己好好研究下,就不解释了,睡觉了。


----------------解决方案--------------------------------------------------------