fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main()
  5. {
  6. const int p=37;
  7. static int primes[37] = {
  8. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
  9. 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113,
  10. 127, 131, 137, 139, 149, 151, 157
  11. };
  12.  
  13.  
  14. int i, k, n,otv;
  15. int fact, o;
  16. int arr3[p];
  17. int arr4[p];
  18. o=0;
  19. otv=-1;
  20. for (i=0;i<p;i++)
  21. {
  22. arr3[i]=0;
  23. arr4[i]=0;
  24. }
  25. scanf("%d%d", &n, &k);
  26. for (fact = k;o<p;)
  27. {
  28. if (fact % primes[o] == 0)
  29. {
  30. fact = fact/primes[o];
  31. arr3[o]++;
  32. }
  33. else
  34. {
  35. o++;
  36. }
  37. }
  38. for (i = 2; i <= n; i++)
  39. {
  40. o = 0;
  41. int fact = i;
  42. for (;o < p;)
  43. {
  44. if (arr3[o] > 0)
  45. {
  46. if (fact % primes[o] == 0)
  47. {
  48. fact = fact/primes[o];
  49. arr4[o]++;
  50. }
  51. else
  52. {
  53. o++;
  54. }
  55. }
  56. else
  57. {
  58. o++;
  59. }
  60. }
  61. }
  62. i=0;
  63. for (;i < p;i++ )
  64. {
  65. if (arr4[i]!=0)
  66. {
  67. fact = arr4[i] / arr3[i];
  68. if ((fact < otv) || (otv == -1))
  69. {
  70. otv = fact;
  71. }
  72. }
  73. }
  74. printf ("\n%d\n", otv);
  75. return 0;
  76. }
  77.  
Success #stdin #stdout 0s 2252KB
stdin
100 100
stdout
12