#include<bits/stdc++.h> using namespace std; bool b[100000001]; int main() { int n,i,j,ans; cin>>n; ans=n-1; for(i=2;i*i<=n;i++) if(b[i]==0) for(j=i*2;j<=n;j+=i) if(b[j]==0) { b[j]=1; ans--; } cout<<ans; }
10^8为什么不会超时呢,请求大佬解答