代码:
#include <stdio.h> #include <string.h> #include <math.h> #define MAX 1000000 int is_prime[MAX+5] = {1}; //is_prime[i]是素数为1,不是素数为0 int prime_num[MAX]; //prime_num[i]是第i个素数 int main() { int len = 0; //memset(is_prime, 1, sizeof(is_prime)); is_prime[0] = is_prime[1] = 0; for(int i=2; i*i<MAX; i++) { if(is_prime[i]) { for(int j=i*i; j<MAX; j+=i) { is_prime[j] = 0; } } } for(int i=2; i<MAX; i++) { if(is_prime[i]) prime_num[len++] = i; } int flag = 0; for(int i=0; i<len; i++) { printf("%d,", prime_num[i]); flag++; if(flag==10) { flag = 0; puts(""); } } return 0; }