Daily bit(e) C++. std::gcd, std::lcm
Daily bit(e) C++ #211, алгоритмы наибольшего общего делителя и наименьшего общего кратного из C++17: std::gcd
и std::lcm
.
Определение наибольшего общего делителя (greatest common divisor, GCD) и наименьшего общего кратного (least common multiple, LCM) часто используются в качестве простых упражнений по программированию или задач на собеседованиях.
Начиная с C++17, у нас наконец-то появились стандартные версии этих функций – std::gcd
и std::lcm
в заголовке numeric
.
#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.