Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105

Найти наибольший общий делитель и наименьшее общее кратное

26.02.2015, 17:37. Показов 2569. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем нужно найти Наибольший общий делитель и наименьшее общее кратное.
При запуске пишет " 6.2005\main.cpp||In function 'void pr(int, int, int)':|
6.2005\main.cpp|9|error: no match for 'operator>>'
Как я понял,я к переменной неправильно обращаюсь?Подскажите как исправить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod)
{
    cout<<"Vvedite a\n";
    cout<<"Vvedite b\n";
    cin>>a>>endl;
    cin>>b>>endl;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
        }
        else b=b-a;
        nod=a;
            cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
    }
    cout<<endl;
}
 
void pr2(int a,int b,int nod,int nok)
{
      nok=a*b/nod;
        cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
}
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod);
    pr2(a,b,nod,nok);
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.02.2015, 17:37
Ответы с готовыми решениями:

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

Дружественная функция: найти наибольший общий делитель и наименьшее общее кратное
Вообщем нужно найти Наибольший общий делитель и наименьшее общее кратное.И надо программу написать с помощью дружественной функции.Я...

Найти наибольший общий делитель n и m (наименьшее общее кратное n и m) используя алгоритм Евклида.
10.Даны натуральные числа n,m. Найти наибольший общий делитель n и m (наименьшее общее кратное n и m) используя алгоритм Евклида. Пусть n...

10
 Аватар для ronaldo
94 / 48 / 63
Регистрация: 16.06.2014
Сообщений: 386
26.02.2015, 17:43
7-10 строки замени на
C++
1
2
3
4
cout<<"Vvedite a"<<endl;
    cin>>a;
    cout<<"Vvedite b"<<endl;
    cin>>b;
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
26.02.2015, 17:44
Avtarkia, уберите ">>endl" в строках 9 и 10.
0
 Аватар для Z3oM
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
26.02.2015, 17:52
Спасибо Вам за совет!
0
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:00  [ТС]
Теперь такая фигня.
Если ввести 80 и 120 то выводит два cout:
80 и 40.Тоесть первый тупо выводит "а", а второй правильно.И нок не выводит.Как иссправить?

Добавлено через 1 минуту
Решил проблему с выводом двух cout.ПОчему не вычисляет нок?

Добавлено через 3 минуты
Как я понимаю, вот тут с делением что-то не то.
C++
1
nok=a*b/nod;
Операнд "/" правильно использую?
0
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:05  [ТС]
Нужно найти наибольший общий делитель и наименьшее общее кратное.
Проблема в том,что нод находит правильно, а вот нок выводит "0".В чем дело?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod)
{
    cout<<"Vvedite a\n";
    cout<<"Vvedite b\n";
    cin>>a;
    cin>>b;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
 
        }
        else
        {
            b=b-a;
        }
        nod=a;
 
    }
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
    cout<<endl;
 
}
 
void pr2(int a,int b,int nod,int nok)
{
      nok=(a*b)/nod;
        cout<<"Naibolshee obshee kratnoe "<<nok;
    cout<<endl;
}
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod);
    pr2(a,b,nod,nok);
    system("pause");
    return 0;
}
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
26.02.2015, 18:11
Avtarkia, у вас a, b и nod не инициализируются.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <stdlib.h>
#include <cmath>
 
int NOD(int a, int b) {
    if (b == 0) return fabs(a);
    return NOD(b, a % b);
}
 
int NOK(int a,int b,int nod) {
    return ((a*b)/nod);
}
 
int main() {
    int a, b;
    std::cout<<"Vvedite a" << std::endl; std::cin>>a;
    std::cout<<"Vvedite b" << std::endl; std::cin>>b;
 
    int nod = NOD(a,b);
    std::cout<<"Naibolshiy obshiy delitel " << nod << std::endl;
 
    int nok = NOK(a, b, nod);
    std::cout<<"Naibolshee obshee kratnoe " << nok << std::endl;
 
    system("pause");
    return 0;
}
0
41 / 41 / 26
Регистрация: 24.02.2015
Сообщений: 151
26.02.2015, 18:35
pr принимает все параметры по значению. Передавай по ссылке и будет работать.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int &c,int &d,int &nod)
{
    cout<<"Vvedite a\n";
    cout<<"Vvedite b\n";
    cin>>c;
    cin>>d;
    int a = c;
    int b = d;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
 
        }
        else
        {
            b=b-a;
        }
        nod=a;
 
    }
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
    cout<<endl;
 
}
 
void pr2(int a,int b,int nod,int nok)
{
      nok=(a*b)/nod;
        cout<<"Naibolshee obshee kratnoe "<<nok;
    cout<<endl;
}
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod);
    std::cout <<a << " " << b<< std::endl;
    pr2(a,b,nod,nok);
    system("pause");
    return 0;
}
0
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:36  [ТС]
Короче,сам разобрался.Вот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod,int nok)
{
    int f,g;
    cout<<"Vvedite a\n";
    cin>>a;
    cout<<"Vvedite b\n";
    cin>>b;
    f=a;
    g=b;
 
 
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
            nod=a;
 
        }
        else
        {
            b=b-a;
            nod=b;
        }
 
    }
    nok=(f*g)/nod;
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
     cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
 
}
0
1 / 1 / 1
Регистрация: 09.12.2014
Сообщений: 105
26.02.2015, 18:37  [ТС]
Как починить?

Добавлено через 36 секунд
Вот так исправил,все равно не вычисляет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod,int nok)
{
    cout<<"Vvedite a\n";
    cin>>a;
    cout<<"Vvedite b\n";
    cin>>b;
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
 
        }
        else
        {
            b=b-a;
        }
        nod=a;
 
    }
    nok=(a*b)/nod;
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
     cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
 
}
 
 
int main()
{
    int a,b,nok,nod;
    pr(a,b,nod,nok);
    system("pause");
    return 0;
}
Добавлено через 21 минуту
Короче,сам разобрался.Вот.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
void pr(int a,int b,int nod,int nok)
{
    int f,g;
    cout<<"Vvedite a\n";
    cin>>a;
    cout<<"Vvedite b\n";
    cin>>b;
    f=a;
    g=b;
 
 
    while(a!=b)
    {
        if(a>b)
        {
            a=a-b;
            nod=a;
 
        }
        else
        {
            b=b-a;
            nod=b;
        }
 
    }
    nok=(f*g)/nod;
     cout<<"Naibolshiy obshiy delitel "<<nod<<endl;
     cout<<"Naibolshee obshee kratnoe "<<nok<<endl;
    cout<<endl;
 
}
0
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
26.02.2015, 20:42
вы ведь передаете значения вот сюда
C++
1
pr(a,b,nod,nok);
,которых по сути нет ,вы их не ввели в main,а ввели и в функции pr ,и это значения за пределы pr выйти не могут ,если их конечно глобально не объявить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2015, 20:42
Помогаю со студенческими работами здесь

Найти наибольший общий делитель и наименьшее общее кратное двух введенных натуральных чисел
Напишите пожалуйста код =)

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

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

Найти наименьшее общее кратное трех чисел
заданы 3 числа найти их наименьшее общее кратное Теги выделения кода предназначены для выделения кода, а не задания. Если Вам...

Найти наименьшее общее кратное используя рекурсию
Дан массив.Найти наименьшее общее кратное используя рекурсию


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru