打印小于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;
}