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

Ответы:
Дмитрий Волощенко
25-05-2010 06:35

#include 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

Далия Литвинова
25-05-2010 16:08

#include 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;}

Также наши пользователи интересуются:

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

Открой этот вопрос на телефоне - включи камеру и наведи на QR-код!