这道题难度很大,能想到正解是不容易的
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
long long b[100100],a[100100];
long long n,c,ans,boss=1;
int main()
{
freopen("game.in","r",stdin);
freopen("game.out","w",stdout);
cin>>n;
for(int i=2; i<=100000; i++)
if(!a[i])
{
b[++c]=i;
for(int j=2; i*j<=100000; j++)
a[i*j]=1;
}
for(int i=1; i<=c; i++)
{
boss=1;
while(boss<=n)
{
boss*=b[i];
if(boss<=n)
ans++;
}
}
cout<<ans;
return 0;
}