fork download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int n, m;
  7.  
  8. // Reading input until EOF (End of File)
  9. while (cin >> n >> m) {
  10. // Calculate factorial of n
  11. unsigned long long f = 1;
  12. for (int i = 2; i * i <= n; ++i) {
  13. f *= i;
  14. }
  15.  
  16. // Check if m divides n!
  17. bool d = true; // Assuming m divides n! until proven otherwise
  18. for (int i = 2; i <= n && d; ++i) {
  19. while (n % i == 0) {
  20. if (f % i != 0) {
  21. d = false; // m doesn't divide n!
  22. break;
  23. }
  24. n /= i;
  25. }
  26. }
  27.  
  28. // Output result
  29. if (d) {
  30. cout << m << " divides " << n << "!\n";
  31. } else {
  32. cout << m << " does not divide " << n << "!\n";
  33. }
  34. }
  35.  
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0.01s 5288KB
stdin
6 9
6 27
20 10000
20 100000
1000 1009
stdout
9 does not divide 3!
27 does not divide 3!
10000 does not divide 5!
100000 does not divide 5!
1009 does not divide 125!