题目:
题解:
还是基于每个数都能被n个指数的幂之积来表示
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1000010;
bool st[N];
int n,cnt;
void get_prime(int x){
for(int i=2;i<=n;i++){
if(!st[i]){
cnt++;
for(int j=i+i;j<=n;j+=i)st[j]=true;
}
}
}
int main(){
scanf("%d",&n);
get_prime(n);
printf("%d\n",cnt);
return 0;
}