Рубрики

Программа C ++ для общих делителей двух чисел

Учитывая два целых числа, задача состоит в том, чтобы найти количество всех общих делителей данных чисел.

Input : a = 12, b = 24
Output: 6
// all common divisors are 1, 2, 3, 
// 4, 6 and 12

Input : a = 3, b = 17
Output: 1
// all common divisors are 1

Input : a = 20, b = 36
Output: 3
// all common divisors are 1, 2, 4

// C ++ реализация программы
#include <bits/stdc++.h>

using namespace std;

  
// Функция для вычисления gcd двух чисел

int gcd(int a, int b)

{

    if (a == 0)

        return b;

    return gcd(b % a, a);

}

  
// Функция для вычисления всех общих делителей
// из двух заданных чисел
// a, b -> введите целые числа

int commDiv(int a, int b)

{

    // найти gcd a, b

    int n = gcd(a, b);

  

    // Подсчитать делители n.

    int result = 0;

    for (int i = 1; i <= sqrt(n); i++) {

        // если 'i' является фактором n

        if (n % i == 0) {

            // проверяем равны ли делители

            if (n / i == i)

                result += 1;

            else

                result += 2;

        }

    }

    return result;

}

  
// Драйвер программы для запуска дела

int main()

{

    int a = 12, b = 24;

    cout << commDiv(a, b);

    return 0;

}

Выход:

6

Пожалуйста, обратитесь к полной статье об общих делителях двух чисел для более подробной информации!

Рекомендуемые посты:

Программа C ++ для общих делителей двух чисел

0.00 (0%) 0 votes