Advertisement
Farjana_akter

Untitled

May 30th, 2020
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.36 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. bool mark[2750000+5];
  5. vector<ll>isprime;
  6. ll psize;
  7.  
  8. void sieve()
  9. {
  10. ll i,j;
  11. mark[0]=true;
  12. mark[1]=true;
  13. for(i=2;i*i<=2750000;i++)
  14. {
  15. if(mark[i]==false)
  16. {
  17. for(j=i*i;j<=2750000;j+=i)
  18. {
  19. mark[j]=true;
  20. }
  21. }
  22. }
  23. // isprime.push_back(2);
  24. for(i=2;i<=2750000;i++)
  25. {
  26. if(mark[i]==false)
  27. isprime.push_back(i);
  28. }
  29. }
  30.  
  31.  
  32. ll cnt(ll n)
  33. {
  34. //sieve();
  35. ll res=0,i;
  36.  
  37. for(i=0;isprime[i]*isprime[i]<=n && i<=isprime.size();i++)
  38. {
  39. if(n%isprime[i]==0)
  40. {
  41. while(n%isprime[i]==0)
  42. {
  43. res++;
  44. n/=isprime[i];
  45. }
  46. }
  47. }
  48. if(n>1)
  49. res++;
  50. return res;
  51. }
  52.  
  53. ll arr[2750000+5];
  54. int main()
  55. {
  56. sieve();
  57. arr[0]=0,arr[1]=0;
  58. for(ll i=2;i<2750000;i++)
  59. {
  60. arr[i]=arr[i-1]+cnt(i);
  61. }
  62. // cout<<arr[1305757]<<endl;
  63. ll n,cas=1;
  64. while(cin>>n)
  65. {
  66. if(n<0)
  67. break;
  68. ll a=lower_bound(arr,arr+2750000,n)-arr;
  69. if(arr[a]==n)
  70. cout<<"Case "<<cas++<<": "<<a<<"!"<<endl;
  71. else
  72. cout<<"Case "<<cas++<<": Not possible."<<endl;
  73.  
  74. }
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement