fork(1) download
  1. #include <iostream>
  2.  
  3. namespace
  4. {
  5. template <typename T>
  6. T gcd(T a, T b)
  7. {
  8. for (;;) {
  9. if (a == 0) { return b < 0 ? -b : b; }
  10. b %= a;
  11. if (b == 0) { return a < 0 ? -a : a; }
  12. a %= b;
  13. }
  14. }
  15.  
  16. template <typename T>
  17. T lcm(T a, T b)
  18. {
  19. T n = gcd(a, b);
  20. if (n != 0) { n = a / n * b; }
  21. return n < 0 ? -n : n;
  22. }
  23. }
  24.  
  25. void Euler5(int N = 20)
  26. {
  27. int number = 1;
  28. for (int i = 2; i <= N; ++i) {
  29. number = lcm(number, i);
  30. }
  31. std::cout << "5. smallest(" << N << ")=" << number << '\n';
  32. }
  33.  
  34. int main()
  35. {
  36. Euler5();
  37. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
5. smallest(20)=232792560