用筛选法求100以内的素数(C语言)
题目要求:如标题
思路:
- 有一个数i,遍历它后面的数
- 如果这些数字能被它整除,则这些数不是素数,把它们的值赋为0
- 如此循环遍历,最后只需要把不是0的数输出即可,这些数就是素数
以下为具体代码:
#include <stdio.h>
#include <math.h>
int main()
{
int i,j;
int a[100];
for(i=0;i<=99;i++)
a[i]=i+1;
a[0]=0;
for(i=1;i<=98;i++)
{
for(j=i+1;j<=99;j++)
{
if(a[i]!=0 && a[j]!=0 && a[j]%a[i]==0)
a[j]=0;
}
}
for(i=0;i<=99;i++)
{
if(a[i]!=0)
{
printf("%d ",a[i]);
}
}
printf("\n");
return 0;
}