#include<bits/stdc++.h>
using namespace std;
int v[10000],record[10000];
void t(){
v[0]=v[1]=1;
for(int i=2;i<=1000;i++){
if(!v[i]){
for(int j=2;j*i<=1000;j++)
v[j*i]=1;
}
}
int k=0;
for(int i=1;i<=1000;i++)
if(!v[i])k++;
cout<<"1000以内的素数有"<<k<<"个";//168个
}
void oula(){
for(int i=2;i<=1000;i++){
if(!v[i])record[++record[0]]=i;
for(int j=1;j<=record[0]&&i*record[j]<=1000;j++){
v[ i*record[j] ]=1;
if(i%record[j]==0)break;
}
}
cout<<record[3]<<endl;
cout<<"1000以内的素数有"<<record[0]<<"个";//168个
}
//欧拉筛法伪代码:
/*
void oula(){
for(要筛选的区间){
if(该数字没有被筛过){
prime[++prime[0]]=该数字 ; //记录该数字并且计数
}
for(int j=1;j<=prime[0]&&i*prime[j]<=maxn;j++){
v[i*prime[j]]=1;
if(i%prime[j]==0)break; //保证每个合数被最小的因素筛
}
}
}
*/
int main(){
oula();
}