Advertisement
Saleh127

CF 1114C

Oct 26th, 2020
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define test int t; cin>>t; for(int cs=1;cs<=t;cs++)
  5. #define maX 1000008
  6. vector<ll>p;
  7. vector< pair <ll,ll > >dll;
  8. long long int base, num,ans;
  9. bool marked[maX];
  10. void sieve()
  11. {
  12. marked[0]=1;
  13. marked[1]=1;
  14. for(ll i=4; i<=maX; i+=2)
  15. {
  16. marked[i]=1;
  17. }
  18. p.push_back(2);
  19. for(ll i=3; i<=maX; i+=2)
  20. {
  21. if(marked[i]==0)
  22. {
  23. for(ll j=i*i; j<=maX; j+=2*i)
  24. {
  25. marked[j]=1;
  26. }
  27. }
  28. }
  29.  
  30. for(ll i=3; i<=maX; i+=2)
  31. {
  32. if(marked[i]==0)
  33. {
  34. p.push_back(i);
  35. }
  36. }
  37. }
  38.  
  39. void divisors()
  40. {
  41. ll i,j,k,l,x;
  42. x=base;
  43. for(i=0; p[i]*p[i]<=base && i<p.size(); i++)
  44. {
  45. if(x%p[i]==0)
  46. {
  47. k=p[i];
  48. l=0;
  49. while(x%k==0)
  50. {
  51. l++;
  52. x/=k;
  53. }
  54. dll.push_back(make_pair(k,l));
  55. }
  56. }
  57. if(x>1) dll.push_back(make_pair(x,1));
  58.  
  59. }
  60.  
  61. void zeros()
  62. {
  63.  
  64. ll a,c,i,j,k,l;
  65. for(i=0; i<dll.size(); i++)
  66. {
  67. a=num;
  68. c=0;
  69. while(a)
  70. {
  71. c=c+(a/dll[i].first);
  72. a/=dll[i].first;
  73. }
  74. c/=dll[i].second;
  75. ans=min(ans,c);
  76. }
  77. }
  78.  
  79. int main()
  80. {
  81. ios_base::sync_with_stdio(0);
  82. cin.tie(0);
  83. cout.tie(0);
  84.  
  85. sieve();
  86. cin>>num>>base;
  87.  
  88. dll.clear();
  89. ans=num;
  90.  
  91. divisors();
  92. zeros();
  93.  
  94. cout<<ans<<endl;
  95.  
  96.  
  97. return 0;
  98. }
  99.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement