Методы вычисления наибольшего общего делителя (НОД) в C++

Я могу предоставить вам несколько методов вычисления наибольшего общего делителя (НОД) в C++. Вот некоторые распространенные подходы:

  1. Алгоритм Евклида. Алгоритм Евклида — это эффективный метод поиска НОД двух чисел. Он неоднократно вычитает меньшее число из большего числа, пока два числа не станут равными, и полученное число будет НОД.
int gcd(int a, int b) {
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
  1. Итерационный алгоритм Евклида: это итеративная версия алгоритма Евклида, позволяющая избежать рекурсии.
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}
  1. Стандартная библиотечная функция: C++ предоставляет встроенную функцию __gcd()в заголовке , которая вычисляет НОД двух чисел.
#include <algorithm>
int main() {
    int a = 24;
    int b = 36;
    int gcdValue = __gcd(a, b);
    // Rest of the code
    return 0;
}
  1. Метод простой факторизации. Этот метод включает в себя поиск простых делителей обоих чисел, а затем поиск общих простых делителей. Произведение общих простых делителей дает НОД.