Ежедневный бит (е) C ++ # 211, алгоритмы наибольшего общего делителя и наименьшего общего кратного C ++ 17: std:: gcd и std:: lcm.

Наибольший общий делитель и наименьшее общее кратное часто используются в качестве простых упражнений по программированию или вопросов на собеседовании.

Начиная с C++17, у нас наконец-то появились стандартные версии этих функций как std::gcd и std::lcm в числовом заголовке.

#include <numeric>

auto gcd = std::gcd(2*3, 3*5);
// gcd == 3

auto lcm = std::lcm(2*3, 3*5);
// lcm == 2*3*5

Откройте пример в Compiler Explorer.