#include <stdio.h>
#include <stdlib.h>
static void primer(void)
{
int i, j;
char primer[1001] = {0};
for(i = 2; i < 1001; i++)
{
if(primer[i] == 0)
{
for(j = i*2; j < 1001; j += i)
primer[j] = -1;
}
}
for(i = 2; i < 1001; i++)
if(primer[i] == 0)
printf("%d",i);
printf("\n");
}
int main()
{
prinmer();
exit(0);
}
数组中的值对应数组的下表值,用0 和 -1标记数组中的值,0表示保留该值,-1表示删除该值。其中只用到了i=2~1000的值。0 1不予考虑。
要注意的就是删除i的倍数的操作。其实就是删除j = i*2.以及1001以内j += i;的值