[求助]埃拉托色尼筛网法求质数问题[已解决]
埃拉托色尼筛网法
描述如下:
(1)定义整数数组P,将所有色数组元素设置为0
(2)设置变量i=2;
(3)如果i>n算法结束
(4)如果P[i]等于0;那么i是一个质数
(5)对于所有正整数j,如果i*j<=n,将数组元素P[i*j]设置为1
(6)将i的值增加1,回到(3)
这是我写的用这个算法求10以内的质数,为什么他的输出就只有2?
请大家帮个忙看下
#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;
}
}
[此贴子已经被作者于2006-8-15 1:21:28编辑过]