素数使用筛法划掉最开始元素的倍数
#include<iostream>
using namespace std;
#define MAX_NUM 10000
char isPrime[MAX_NUM+1];
int main(){
for(int i=2;i<=MAX_NUM;i++) //假设均为素数
isPrime[i]=1;
for(int i=2;i<=MAX_NUM;i++){
if(isPrime[i])
for(int j=2*i;j<=MAX_NUM;j+=i) //i的倍数标记为非素数
isPrime[j]=0;
}
for(int i=2;i<=MAX_NUM;i++)
if(isPrime[i])
cout<<i<<endl;
return 0;
}