fork(1) download
  1. #include <stdio.h>
  2.  
  3. #define PRIMES_COUNT 37
  4.  
  5. int main() {
  6. static int primes[PRIMES_COUNT] = {
  7. 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53,
  8. 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113,
  9. 127, 131, 137, 139, 149, 151, 157
  10. };
  11.  
  12. int i, k, n;
  13. int temp, current_prime = 0, answer = -1;
  14.  
  15. int multK[PRIMES_COUNT];
  16. int multN[PRIMES_COUNT];
  17.  
  18. for (i = 0; i < PRIMES_COUNT; i++) {
  19. multK[i] = 0;
  20. multN[i] = 0;
  21. }
  22.  
  23. scanf("%d%d", &n, &k);
  24.  
  25. temp = k;
  26. while (current_prime < PRIMES_COUNT)
  27. if (temp % primes[current_prime] == 0) {
  28. temp /= primes[current_prime];
  29. multK[current_prime]++;
  30. } else current_prime++;
  31.  
  32. for (i = 2; i <= n; i++) {
  33. int current_prime = 0;
  34. int temp = i;
  35.  
  36. while (current_prime < PRIMES_COUNT)
  37. if (multK[current_prime] > 0) {
  38. if (temp % primes[current_prime] == 0) {
  39. temp /= primes[current_prime];
  40. multN[current_prime]++;
  41. } else current_prime++;
  42. } else current_prime++;
  43. }
  44.  
  45. for (i = 0; i < PRIMES_COUNT; i++) {
  46. if (multK[i] == 0 ) continue;
  47. temp = multN[i] / multK[i];
  48. if (temp < answer || answer == -1) answer = temp;
  49. }
  50.  
  51. printf ("%i\n", answer);
  52. return (0);
  53. }
Success #stdin #stdout 0s 2296KB
stdin
100 100
stdout
12