fork download
  1. #include <stdio.h>
  2. int main()
  3. {
  4. const int l=1000;
  5. int i, k, n,otv;
  6. int kusok, o,x;
  7. int ch,t;
  8. int arr1[l];
  9. for (i=0;i<l;i++)
  10. {
  11. arr1[i]=0;
  12. }
  13. o=0;
  14. otv=-1;
  15. scanf("%d%d", &n, &k);
  16. for (ch=0,t=k,i=2,x=0;i<=t;)
  17. {
  18. if(t%i==0)
  19. {
  20. if (arr1[x-1]!=i)
  21. {
  22. arr1[x]=i;
  23. x++;
  24. ch++;
  25. }
  26. t=t/i;
  27. }
  28. else
  29. {
  30. i=i+1;
  31. }
  32. }
  33. int arr13[ch];
  34. int arr14[ch];
  35. for (i=0;i<ch;i++)
  36. {
  37. arr13[i]=0;
  38. arr14[i]=0;
  39. }
  40. for (kusok = k;o<ch;)
  41. {
  42. if (kusok % arr1[o] == 0)
  43. {
  44. kusok = kusok/arr1[o];
  45. arr13[o]++;
  46. }
  47. else
  48. {
  49. o++;
  50. }
  51. }
  52. for (i = 2; i <= n; i++)
  53. {
  54. for (o=0,kusok=i;o <ch;)
  55. {
  56. if (arr13[o]>0)
  57. {
  58. if (kusok%arr1[o] == 0)
  59. {
  60. kusok=kusok/arr1[o];
  61. arr14[o]++;
  62. }
  63. else
  64. {
  65. o++;
  66. }
  67. }
  68. else
  69. {
  70. o++;
  71. }
  72. }
  73. }
  74. for (i=0; i<ch;i++ )
  75. {
  76. if (arr14[i]!=0)
  77. {
  78. kusok = arr14[i] / arr13[i];
  79. if ((kusok < otv) || (otv == -1))
  80. {
  81. otv = kusok;
  82. }
  83. }
  84. }
  85. printf ("%d", otv);
  86. return 0;
  87. }
  88.  
Success #stdin #stdout 0.07s 2296KB
stdin
1000000 1000000000
stdout
27777