#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;
}
2018/03/30java重写保存:
package com.tjrac_java_2;
/*素数筛选法*/
public class IsPromeNum {
static int [] IsPrime = new int[100];
static int [] num = new int[100];//num等于0表示是素数
public static void main(String[] args) {
IsPrime[0]=IsPrime[1]=1;
for(int i=2;i< 100;i++){
if(IsPrime[i]==0){
for(int j=i*i;j< 100;j+=i){
IsPrime[j]=1;
}
}
}
for(int i=2;i<100;i++){
if(IsPrime[i]==0){
System.out.println(i);
}
}
}
}