Форум программистов, компьютерный форум CyberForum.ru

Для тройки натуральных чисел определить их больший общий делитель. - C++

Восстановить пароль Регистрация
 
Antonxa
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 11
27.10.2010, 16:30     Для тройки натуральных чисел определить их больший общий делитель. #1
Помогите решить задачу
Для тройки натуральных чисел определить их больший общий делитель.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 16:30     Для тройки натуральных чисел определить их больший общий делитель.
Посмотрите здесь:

C++ Определить наибольший общий делитель трех натуральных чисел
C++ Общий делитель для двух натуральных чисел
Наибольший общий делитель двух натуральных чисел C++
Определить наибольший общий делитель для 3-х введенных с клавиатуры чисел C++
C++ Найти наибольший общий делитель трех натуральных чисел
C++ Вычислить НОД (наибольший общий делитель) двух натуральных чисел A и B
C++ Найти НОД (наибольший общий делитель) массива натуральных чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
27.10.2010, 16:35     Для тройки натуральных чисел определить их больший общий делитель. #2
Antonxa, Вроде так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    int a, b, c;
    std::cout<<"Enter a, b, c: ";
    std::cin>>a>>b>>c;
    int max=std::max(std::max(a,b), c);
    int nod=1;
    for(int i=1; i<=max/2; ++i)
    {
         if(a%i==0&&b%i==0&&c%i==0)
              if(nod<i)
              {
                  nod=i;
              }
     }
     std::cout<<nod<<'\n';
     return 0;
}
Antonxa
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 11
27.10.2010, 16:57  [ТС]     Для тройки натуральных чисел определить их больший общий делитель. #3
А можно с комментариями,если не сложно?
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
27.10.2010, 17:10     Для тройки натуральных чисел определить их больший общий делитель. #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>//Хедер для ввода-вывода
 
int main()
{
    int a, b, c;
    std::cout<<"Enter a, b, c: ";
    std::cin>>a>>b>>c;
    int max=std::max(std::max(a,b), c);//Находим максимум из a, b, c
    int nod=1;
    for(int i=1; i<=max/2; ++i)//От 1 до тех пор пока i!=max/2, ибо больше чем такой делитель быть не может
    {
         if(a%i==0&&b%i==0&&c%i==0)//Если все три числа делятся на i без остатка
              if(nod<i)//и если i>nod
              {
                  nod=i;//Присваиваем nod i
              }
     }
     std::cout<<nod<<'\n';//Печатаем нод
     return 0;
}
Antonxa
0 / 0 / 0
Регистрация: 02.10.2010
Сообщений: 11
27.10.2010, 17:22  [ТС]     Для тройки натуральных чисел определить их больший общий делитель. #5
Спасибо большое!!!
Aynura Aliieva
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.10.2011, 13:13     Для тройки натуральных чисел определить их больший общий делитель. #6
а можно вот эту строку

int max=std::max(std::max(a,b), c);

записать иначе, чтобы не использовалось std:: ?
извините если задаю глупый вопрос
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.10.2011, 13:26     Для тройки натуральных чисел определить их больший общий делитель. #7
C++
1
using std::max;
и просто убираете все std::
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7933 / 4715 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
30.10.2011, 13:38     Для тройки натуральных чисел определить их больший общий делитель. #8
diagon, Я полагаю вопрос был как сделать тоже самое не используя std::max
Aynura Aliieva
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.10.2011, 13:41     Для тройки натуральных чисел определить их больший общий делитель. #9
я писала using namespace std;
но если убрать после все std:: компилятор выдаёт ошибку
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.10.2011, 13:43     Для тройки натуральных чисел определить их больший общий делитель. #10
Цитата Сообщение от Aynura Aliieva Посмотреть сообщение
я писала using namespace std;
но если убрать после все std:: компилятор выдаёт ошибку
Потому что конфликт имен. Переменная max и функция max.
Вот поэтому и не стоит пользоваться using namespace std;
Aynura Aliieva
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.10.2011, 13:51     Для тройки натуральных чисел определить их больший общий делитель. #11
тогда последний вопрос)
если всё же написать using namespace std;
убрать все std::
и переименовать переменную max.
Будет ли это верно?
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
30.10.2011, 13:52     Для тройки натуральных чисел определить их больший общий делитель. #12
Цитата Сообщение от Aynura Aliieva Посмотреть сообщение
тогда последний вопрос)
если всё же написать using namespace std;
убрать все std::
и переименовать переменную max.
Будет ли это верно?
Должно скомпилироваться, но будет несомненно хуже первоначального варианта.
Aynura Aliieva
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
30.10.2011, 13:56     Для тройки натуральных чисел определить их больший общий делитель. #13
Спасибо большое)
Aynura Aliieva
0 / 0 / 0
Регистрация: 30.10.2011
Сообщений: 5
10.11.2011, 22:29     Для тройки натуральных чисел определить их больший общий делитель. #14
Здравствуйте )
а если ту же задачу решить,но с использованием алгоритма нахождения нод вычитанием, можете написать или объяснить как?:/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2011, 23:14     Для тройки натуральных чисел определить их больший общий делитель.
Еще ссылки по теме:

Найти наибольший общий делитель трех натуральных чисел C++
C++ Рекурсия: найти наибольший общий делитель 2-х натуральных чисел
C++ Найти наиболее больший общий делитель для последовательности
Разработать функцию, которая для заданных натуральных чисел N и M возвращает их наибольший общий делитель C++
найти наибольший общий делитель массива натуральных чисел C++

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

Или воспользуйтесь поиском по форуму:
neske
1425 / 792 / 55
Регистрация: 26.03.2010
Сообщений: 2,725
10.11.2011, 23:14     Для тройки натуральных чисел определить их больший общий делитель. #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
int gcd (int a, int b) {
    while (a && b) {
        if (a > b)
            a -= b;
        else
            b -= a;
    }
    return a + b;
}
 
int main() {
    int a = 2, b = 18, c = 30;
    std::cout << gcd (a, gcd (b, c));
    return 0;
}
Yandex
Объявления
10.11.2011, 23:14     Для тройки натуральных чисел определить их больший общий делитель.
Ответ Создать тему
Опции темы

Текущее время: 01:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru