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

Вопрос школьника по предмету Информатика

НА С++ ПОЖАЛУЙСТА
Алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на разность большего и меньшего до тех пор, пока одно из них не станет равно нулю; тогда второе и есть НОД. Напишите программу, которая реализует этот алгоритм.

Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .

Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

Примеры
входные данные
14 21
выходные данные
7 3

Ответ учителя по предмету Информатика

#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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Похожие вопросы от пользователей