Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
SilverDiver
1 / 1 / 5
Регистрация: 03.12.2015
Сообщений: 110
#1

Найти наибольший общий делитель двух чисел

27.03.2016, 22:17. Просмотров 655. Ответов 5
Метки нет (Все метки)

Для заданных натуральных целых чисел n и m найти наибольший общий делитель (НОД), используя следующее соотношение НОД(n, m) = НОД (n, r), где r – остаток от деления n на m (n > m).

Помогите если знаете хотя бы что-то очень подобное этой задачке.

Добавлено через 2 часа 21 минуту
+
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int main(void)
{
    int n, m, r;
    cin >> n >> m;
    while (m) {
        r = n % m;
        n = m;
        m = r;
    }
    cout << n << "\n";;
    system("pause");
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2016, 22:17
Ответы с готовыми решениями:

Найти наибольший общий делитель двух чисел
найти наибольший общий делитель двух чисел с помощью рекурсии и без нее

Найти наибольший общий делитель двух чисел
Задание: найти наибольший общий делитель двух чисел. Сам код: #include...

Найти наибольший общий делитель двух чисел
Задача &quot;Длинный НОД&quot; Даны два числа. Найти их наибольший общий делитель....

Найти наибольший общий делитель двух чисел Фибоначчи
Добрый вечер, решаю задачу, ошибка на шестом тесте. Условии задачи: ...

Найти наибольший общий делитель двух целых чисел
Знаю что есть задачи на эту тему, но нужного для себя не нашла. Не могу...

5
SilverDiver
1 / 1 / 5
Регистрация: 03.12.2015
Сообщений: 110
04.04.2016, 23:01  [ТС] #2
Нашел более адекватный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
void NSD(int n, int m)
{
    if (n = 0) return m;
    return NSD(m % n, n);
}
void main()
{
    setlocale(LC_ALL, "");
    int x, y;
    cout << "Введітьте два числа " << endl;
    cin >> x >> y;
    cout << "Найбільший спільний дільник = " << NSD(x, y) << endl;  
    system("pause");
}
0
Croessmah
++Ͻ
14500 / 8282 / 1556
Регистрация: 27.09.2012
Сообщений: 20,334
Записей в блоге: 3
Завершенные тесты: 1
04.04.2016, 23:56 #3
Цитата Сообщение от SilverDiver Посмотреть сообщение
Нашел более адекватный код
Даешь везде рекурсию
0
SpBerkut
Объявлятель переменных
948 / 274 / 276
Регистрация: 24.09.2011
Сообщений: 1,008
Завершенные тесты: 2
05.04.2016, 07:59 #4
Лучший ответ Сообщение было отмечено SilverDiver как решение

Решение

C++
1
2
3
int gcd(int a, int b) {
    return b?gcd(b,a%b):a;
}
1
SilverDiver
1 / 1 / 5
Регистрация: 03.12.2015
Сообщений: 110
05.04.2016, 16:34  [ТС] #5
Тема такая: Создать программы с реализацией рекурсивных алгоритмов
0
zer0mail
2452 / 2089 / 216
Регистрация: 03.07.2012
Сообщений: 7,569
Записей в блоге: 1
05.04.2016, 16:49 #6
Почему цель задания сформулирована только в 5м сообщении (а не в 1м)? Этих НОДов на форуме - вагон и маленькая тележка, в т.ч. рекурсивные.
1
05.04.2016, 16:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2016, 16:49

Найти наибольший общий делитель двух натуральных чисел
номер 2: Составьте программу определения наибольшего общего делителя двух...

Требуется найти наибольший общий делитель двух чисел Фибоначчи.
ЗАДАЧА №384 Числа Фибоначчи - 3 (Время: 1 сек. Память: 16 Мб Сложность:...

Найти наибольший общий делитель и наименьшее общее кратное двух чисел
Даны два натуральных числа m и n. Найти их наибольший общий делитель и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru