Здитель:  
template < typename IntegerType >
IntegerType  boost::math::gcd( IntegerType const &a, IntegerType const &b );
template < typename ForwardIterator >
std::pair<typename std::iterator_traits<I>::value_type, I> gcd_range(I first, I last);
template < typename IntegerType >
IntegerType  boost::math::lcm( IntegerType const &a, IntegerType const &b );
boost::math::gcd шаблон функции возвращает наиболее распространенный (неотрицательный) дивизор двух целых чисел, переданных ему. boost::math::gcd_range является итерацией вышеупомянутого алгоритма gcd над диапазоном, возвращая наибольший общий дивизор всех элементов. Алгоритм заканчивается, когда gcd достигает единства или конца диапазона. Таким образом, он также возвращает итератор после проверки последнего элемента, поскольку это не может быть равно концу диапазона. Шаблон функции::math::lcm возвращает наименьшее общее (неотрицательное) количество двух целых чисел, переданных ему. Шаблоны функции параметризированы на функции аргументов «ИнтегерType», который также является типом возврата. Внутри эти шаблоны функций используют объект соответствующей версии gcd_evaluator и lcm_evaluator шаблонов класса, соответственно.