题目:求100以内的所有素数。
求素数的算法常考,筛选法求素数不常见。定义长度为101的int数组a[101],初始化为1。依次测试1到100的所有数字是否为素数。若i为合数,则a[i]=0。筛选完毕后,所有非0元素a[i]所对应的数字i为素数。
代码:
#include <iostream>
using namespace std;
int main()
{
int a[101],i,j;
for(i=0;i<101;i++) a[i]=1;
for(i=2;i<101;i++)
{
if(a[i])
for(j=i+1;j<101;)
{
if(j%i==0)
a[j]=0;
j=j+1;
}
}
for(i=2;i<101;i++)
if(a[i]) printf("%d/t",a[i]);
getchar();
return 0;
}