Advertisement
a53

kdivnn

a53
Jan 25th, 2022
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.22 KB | None | 0 0
  1. #include <iostream>
  2. #define ll long long
  3. using namespace std;
  4. ll i,m,c,n,nn,k,maxim,nmax,x;
  5. ll e[21],p[21];
  6.  
  7. void solve(int niv, ll nr)
  8. {
  9. if(niv==m+1)
  10. {
  11. if(nr > maxim)
  12. maxim = nr;
  13. }
  14. else
  15. {
  16. int h;
  17. ll prod = 1, y;
  18.  
  19. for(h = 0; h <= e[niv]; h++)
  20. {
  21. y = nr*prod;
  22. if(y < nmax)
  23. {
  24. solve(niv+1,y);
  25. prod = prod*p[niv];
  26. }
  27. else break;
  28. }
  29. }
  30. }
  31.  
  32. int main()
  33. {
  34. cin >> n >> k;
  35.  
  36. nmax = 1;
  37. for(i = 1; i <= k; i++)
  38. nmax = nmax*10;
  39.  
  40. nn = n;
  41. for(i = 2; i*i <= n; i++)
  42. if(n%i==0)
  43. {
  44. m++;
  45. p[m] = i;
  46. e[m] = 0;
  47. while(n%i==0)
  48. {
  49. e[m]++;
  50. n = n/i;
  51. }
  52. }
  53. if(n > 1)
  54. {
  55. m++;
  56. p[m] = n;
  57. e[m] = 1;
  58. }
  59. for(i = 1; i <= m; i++)
  60. {
  61. e[i] = e[i]*nn;
  62. x = 1;
  63. c = 0;
  64. while(x <= nmax)
  65. {
  66. x = x*p[i];
  67. c++;
  68. }
  69. if(c < e[i])
  70. e[i] = c;
  71. }
  72.  
  73. maxim = 1;
  74. solve(1,1);
  75. cout << maxim;
  76.  
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement