帮忙解一道C语言的题目,在线等。

来源:百度知道 编辑:UC知道 时间:2024/06/05 15:34:59
基本思想:把100内的正整数按从小到大的顺序排序,宣布1不是素数,把它筛掉,然后从剩下的数中选择最小的,宣布它为素数,并去掉它的倍数,而再从剩余的数中选最小的,宣布为素数,并去掉这个数的倍数,依此类推,直到所有的数筛选完毕,筛子中剩余的数就是所求的素数。

PS:我是初学者,别用太难的语句。

已通过tc2.0系统编译。
#include<stdio.h>
int main(void)
{ int a[100],i,j;
/*a[100]为标志数组,若a[i+1]为1,则表示i为素数,反之为非素数*/
for(i=0;i<100;i++) a[i]=1;/*先假设所有的数都是素数*/
for(i=2;i<11;i++) /*数学上可证明,只要一直判断到根号下100就可找到100以内的全部素数*/
{ if(a[i-1]==0) continue; /*判断该数是否被删除*/
for(j=i+1;j<=100;j++) /*如果没被删除,则将他的整数倍都删除*/
if(j%i==0) a[j-1]=0;
}
for(i=2;i<100;i++)
if(a[i-1]==1) printf("%d ",i);
printf("\n");
}