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

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

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

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

Ответы 2

  • #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 217 3
    • Автор:

      sam27
    • 6 лет назад
    • 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;}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years