Рассмотрим алгоритм нахождения наименьшего общего делителя. Писать будем на С++, но если есть желание перенести в другой язык не проблема 😉
Нам не понадобятся какие-либо лишние библиотеки:
#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; }
Успехов в ваших начинаниях.