Нахождение наименьшего общего делителя в С++

Рассмотрим алгоритм нахождения наименьшего общего делителя. Писать будем на С++, но если есть желание перенести в другой язык не проблема 😉
Нам не понадобятся какие-либо лишние библиотеки:

#include <iostream>
using namespace std;

Оприделим необходимые переменные:

int a,b,d,min;

Получим числа для обработки:

cout << "Введите числа: \n";
cin >> a >> b;

Узнаем какое из них меньше и занесём его в переменную min:

min = a > b ? b : a;

Нахождение наименьшего общего делителя происходит вот так:

for (d = 2 ;d < min ; d++)
    if (((a%d==0) && (b%d==0))) break;

Цикл начинается с двойки потому, что все числа делятся на единицу и не имеет смысла делать на это проверку.
Если и то и другое число делятся без остатка на значение переменной d, то это и есть минимальное общее кратное.
Но не стоит забывать, что если кратное не найдено, то в переменной d остаётся значение меньшей переменной. Выполним проверку результата:

if (d==min){
        cout << "Нет общего делителя.\n";
        return 0;
}

В противном случае выводим результат:

cout << "Наименьший общий делитель: " << d << endl;

Итого:

#include <iostream>
using namespace std;

int main() {
    int a,b,d,min;
    cout << "Введите числа: \n";
    cin >> a >> b;
    min = a > b ? b : a;

    for (d=2;d<min;d++)
        if (((a%d==0) && (b%d==0))) break;

    if (d==min){
        cout << "Нет общего делителя.\n";
        return 0;
    }
    cout << "Наименьший общий делитель: " << d << endl;
    return 0;
}

Успехов в ваших начинаниях.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий