#include<stdio.h>
#include<math.h>
int main()
{
int i,j,n,a[101];
for(i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for(i=2;i<sqrt(100);i++)
for(j=i+1;j<=100;j++)
{
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for(i=2;i<=100;i++)
{if(a[i]!=0)
{printf("%5d",a[i]);
}
}
printf("\n");
return 0;
}
在这个地方,让存于数组内的3~100分别除以从2到sqrt(i)的值,以此来判断是否为素数。
前面是从a[2]开始赋值的。需要判断a[i]和a[j]不能为0;后面的则是在一个i的循环内用j——i后面的整数,来除以i,如果除尽了则让a[j]为0;为0了i的话,也需要在第一步的”判断a[i]和a[j]不能为0”的前提下,就可以把除尽的,也就是非素数给排除掉。后面直接把a[j]不为0的输出就是素数了。