Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- bool mark[2750000+5];
- vector<ll>isprime;
- ll psize;
- void sieve()
- {
- ll i,j;
- mark[0]=true;
- mark[1]=true;
- for(i=2;i*i<=2750000;i++)
- {
- if(mark[i]==false)
- {
- for(j=i*i;j<=2750000;j+=i)
- {
- mark[j]=true;
- }
- }
- }
- // isprime.push_back(2);
- for(i=2;i<=2750000;i++)
- {
- if(mark[i]==false)
- isprime.push_back(i);
- }
- }
- ll cnt(ll n)
- {
- //sieve();
- ll res=0,i;
- for(i=0;isprime[i]*isprime[i]<=n && i<=isprime.size();i++)
- {
- if(n%isprime[i]==0)
- {
- while(n%isprime[i]==0)
- {
- res++;
- n/=isprime[i];
- }
- }
- }
- if(n>1)
- res++;
- return res;
- }
- ll arr[2750000+5];
- int main()
- {
- sieve();
- arr[0]=0,arr[1]=0;
- for(ll i=2;i<2750000;i++)
- {
- arr[i]=arr[i-1]+cnt(i);
- }
- // cout<<arr[1305757]<<endl;
- ll n,cas=1;
- while(cin>>n)
- {
- if(n<0)
- break;
- ll a=lower_bound(arr,arr+2750000,n)-arr;
- if(arr[a]==n)
- cout<<"Case "<<cas++<<": "<<a<<"!"<<endl;
- else
- cout<<"Case "<<cas++<<": Not possible."<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement