打印小于N的所有素数(质数)
程序功能为:如果自然数 i 为素数,则设 a[ i ] = 1, 否则 a[ i ] = 0.
1)首先把数组中的所有元素设为1,假设所有数都不是素数。
2)然后把数组中所有对应索引 < 已知素数的倍数 :非素数> 处的元素设为0.
3)最后a[ i ]仍为1的即为素数
#include <stdio.h>
#include <stdlib.h>
#define N 1000 //素数范围
int main()
{
int i, j, a[N];
for(i = 2; i < N; ++i)
a[i] = 1;
for(i = 2; i < N; ++i)
{
if(a[i])
{
for(j = 2; i*j < N; ++j)
a[i*j] = 0;
}
}
printf("指定范围的素数如下:\n");
for (i = 2; i < N; ++i)
{
if(a[i])
printf("%3d\n", i);
}
system("pause");
return 0;
}