Advertisement
Farjana_akter

Untitled

Mar 14th, 2020
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. #define maxn 1000006
  5.  
  6.  
  7. ll cnt2(ll n)
  8. {
  9. ll cnt=0;
  10. while(n)
  11. {
  12. cnt+=(n/2);
  13. n/=2;
  14.  
  15. }
  16. return cnt;
  17. }
  18.  
  19.  
  20.  
  21. ll cnt5(ll n)
  22. {
  23. ll cnt=0;
  24. while(n)
  25. {
  26. cnt+=(n/5);
  27. n/=5;
  28. }
  29.  
  30. return cnt;
  31. }
  32.  
  33.  
  34.  
  35. ll cntp5(ll n)
  36. {
  37. ll cnt=0;
  38.  
  39. while(n%5==0)
  40. {
  41. cnt++;
  42. n/=5;
  43. }
  44. return cnt;
  45. }
  46.  
  47.  
  48. ll cntp2(ll n)
  49. {
  50. ll cnt=0;
  51.  
  52. while(n%2==0)
  53. {
  54. cnt++;
  55. n/=2;
  56. }
  57.  
  58. return cnt;
  59. }
  60.  
  61. int main()
  62. {
  63. // sieve();
  64. ll n,p,q,t,r,cas,a,b,c,d;
  65. cin>>t;
  66. for(cas=1;cas<=t;cas++)
  67. {
  68. cin>>n>>r>>p>>q;
  69. //for ncr;
  70. ll i=cnt2(n);
  71. // cout<<"n er 2 count "<<i<<endl;
  72. ll j=cnt5(n);
  73. // cout<<"n er 5 count "<<j<<endl;
  74.  
  75. ll k=cnt2(r);
  76. // cout<<"r er 2 count "<<k<<endl;
  77. ll l=cnt5(r);
  78. // cout<<"r er 5 count "<<l<<endl;
  79. ll m=cnt2(n-r);
  80. // cout<<"n-r er 2 count "<<m<<endl;
  81. ll o=cnt5(n-r);
  82. // cout<<"n-r er 5 count "<<o<<endl;
  83.  
  84.  
  85. //for p^q
  86.  
  87. ll px=q*cntp2(p);
  88. // cout<<"p er 2 count "<<px<<endl;
  89. ll py=q*cntp5(p);
  90. // cout<<"p er 5 count "<<py<<endl;
  91. ll sum1=(i-k-m+px);
  92. ll sum2=(j-l-o+py);
  93. // cout<<"Sum1 "<<sum1<<" sum2 "<<sum2<<endl;
  94. ll ans=min(sum1,sum2);
  95. cout<<"Case "<<cas<<": "<<ans<<endl;
  96. }
  97. return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement