Вопрос задан 26.05.2018 в 06:07. Предмет Информатика. Спрашивает Ханская Дина.

НА С++ ПОЖАЛУЙСТААлгоритм Евклида для вычисления наибольшего общего делителя двух натуральных

чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно нулю; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм. Входные данные Входная строка содержит два числа, разделённые пробелом – a и b . Выходные данные Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены. Примеры входные данные 14 21 выходные данные 7 3
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Власова Настя.

#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

0 0
Отвечает Майоров Ярослав.

#include <bits/stdc++.h>

using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    int cnt = 0;
    if (a < b) swap(a, b);
    while (b != 0) {
        a = a - b;
        if (a < b) swap(a, b);
        cnt++;
    }
    cout << a << " " << cnt;
    return 0;
}

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос