
Кирилл
6 год назад
НА С++ ПОЖАЛУЙСТААлгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно нулю; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм.Входные данныеВходная строка содержит два числа, разделённые пробелом – a и b .Выходные данныеПрограмма должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.Примерывходные данные14 21выходные данные7 3
ОТВЕТЫ

Полина
Oct 24, 2020
#include <iostream>
using namespace std;
int main()
{
int a, b, nod;
int k=0;
cin >> a >> b;
while (a*b != 0){
if (a>b) a -=b;
else b -= a;
k++;
}
nod = a+b;
cout << nod << " " << k;
return 0;
}
Пример:
14 21
7 3
using namespace std;
int main()
{
int a, b, nod;
int k=0;
cin >> a >> b;
while (a*b != 0){
if (a>b) a -=b;
else b -= a;
k++;
}
nod = a+b;
cout << nod << " " << k;
return 0;
}
Пример:
14 21
7 3
436
Смежные вопросы: