С Новым годом! Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1

Найти НОД (наибольший общий делитель) двух натуральных чисел по алгоритму Евклида

05.03.2014, 21:14. Показов 5259. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти НОД (наибольший общий делитель) двух натуральных чисел по алгоритму Евклида.
Если есть 2 числа a и b. Использовать рекурсию (if-then-else)

Остаток от деления искать по схеме ниже. Не искать через mod.
Pascal
1
2
3
4
5
6
7
8
9
Функция НОД(a, b)
    если a=0
       верни b
    пока b<>0
        если a>b
           a:=a-b
    иначе
           b:=b-a
    верни a
Вот нашел похожую программу:
Pascal
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
var a, b, answer: longint;
  inf, outf: text;
 
function gcd(m, n: longint): longint;
    var modulo: longint;
    begin
        modulo := m mod n;
        if modulo = 0 then
            gcd := n
        else
            gcd := gcd (n, modulo)
    end;
 
begin
    assign(inf, 'input.txt'); reset(inf);
    assign(outf, 'output.txt'); rewrite(outf);
    readln(inf, a, b);
 
    answer := gcd(a, b);
    writeln(outf, answer);
 
    close(inf);
    close(outf);
    readln
end.
Только здесь как я вижу числа а и b НОД которых мы ищем читаются с файла, и после обработки НОД выводится в файл. А мне нужно просто сделать вывод на экран типа:
Введите число а:
Введите число b:
НОД чисел a и b:
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2014, 21:14
Ответы с готовыми решениями:

Используя Алгоритм Евклида найти наибольший общий делитель (НОД) двух неотрицательных чисел
Используя Алгоритм Евклида найти наибольший общий делитель (НОД) двух неотрицательных чисел, с постусловием Repeat !!! Помогите пожалуйста

Даны n натуральных чисел. Найти их наибольший общий делитель, учитывая что НОД(а,б,с)=НОД(НОД(а,б)с)
даны n натуральных чисел. Найти их наибольший общий делитель, учитывая, что НОД(a,b,c) = НОД (НОД(a,b)c). При решении определите функцию...

Найти наибольший общий делитель трех заданных натуральных чисел, используя алгоритм Евклида
№107Найти наибольший общий делитель трех заданных натуральных чисел, используя алгоритм Евклида и учитывая, что НОД(а, Ь, с) = НОД(НОД(а,...

13
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.03.2014, 07:16
Лучший ответ Сообщение было отмечено Mr.Gadget как решение

Решение

Нет тупости предела...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var a, b, answer: longint;
function gcd(m, n: longint): longint;
    var modulo: longint;
    begin
        modulo := m mod n;
        if modulo = 0 then
            gcd := n
        else
            gcd := gcd (n, modulo)
    end;
 
begin
    writeln('Введите 2 натуральных числа');
    readln(a, b);
    answer := gcd(a, b);
    writeln(answer);
    readln
end.
1
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
06.03.2014, 09:29  [ТС]
Puporev, я писал, остаток надо найти через разницу, а не через mod. По схеме в 1 коде.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.03.2014, 09:32
Лучший ответ Сообщение было отмечено Mr.Gadget как решение

Решение

Цитата Сообщение от terassa94 Посмотреть сообщение
Только здесь как я вижу числа а и b НОД которых мы ищем читаются с файла, и после обработки НОД выводится в файл. А мне нужно просто сделать вывод на экран типа:
Что спросил, то и получил

Добавлено через 1 минуту
Pascal
1
2
3
4
5
6
7
type natur=1..maxint;
procedure NOD(n,m:natur;var r:natur);
begin
if n=m then r:=n
else if n>m then NOD(n-m,m,r)
else NOD(m-n,n,r);
end;
0
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
06.03.2014, 09:32  [ТС]
Вот писал:
Цитата Сообщение от terassa94 Посмотреть сообщение
Остаток от деления искать по схеме ниже. Не искать через mod.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.03.2014, 09:33
Ты должен сам все писать, как тебе нужно, а не стоять с протянутой рукой.
0
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
06.03.2014, 12:18  [ТС]
Puporev, да я не только протягиваю, но и помогаю
По форуму еще не очень ориентируюсь...нет достаточно времени, чтобы сидеть здесь, но немного уже знаю.

Добавлено через 2 часа 42 минуты
Puporev, какие строчки нужно заменить? Не компилирует.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
06.03.2014, 12:25
Займи у кого-то мозг и включи ненадолго.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
type natur=1..maxint;
procedure NOD(n,m:natur;var r:natur);
begin
if n=m then r:=n
else if n>m then NOD(n-m,m,r)
else NOD(m-n,n,r);
end;
var a,b,answer:natur;
begin
writeln('Ââåäèòå 2 íàòóðàëüíûõ ÷èñëà');
readln(a,b);
NOD(a,b,answer);
writeln('Íîä=',answer);
readln
end.
1
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
06.03.2014, 12:28  [ТС]
Странно, так же делал. Может действительно проблемы со средой? Он ведь и при запуске выдает ошибку
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
07.03.2014, 00:12
Цитата Сообщение от Puporev Посмотреть сообщение
Займи у кого-то мозг и включи ненадолго.
Цитата Сообщение от terassa94 Посмотреть сообщение
Странно, так же делал.

У меня на FPC все работает. Вы бы написали,что за ошибка и скрин бы приложили.
0
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
07.03.2014, 00:51  [ТС]
Цитата Сообщение от Новичок Посмотреть сообщение
У меня на FPC все работает. Вы бы написали,что за ошибка и скрин бы приложили.
0
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
14.03.2014, 22:33  [ТС]
Новичок, или так, но опять же не компилирует
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program pr;
type natur=1..maxint;
function nod(a,b:Integer):Integer;
begin
if a=b then nod:=a else
if a>b then nod:=nod(a-b,b) else nod:=nod(b-a,a);
end;
var a,b:natur;
begin
writeln('Vvedite 2 naturalnykh chysla');
readln (a,b);
NOD(a,b);
writeln('NOD=',nod);
readln
end.
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
14.03.2014, 22:37
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
program pr;
 
type natur=1..maxint;
 
function nod(a,b:Integer):Integer;
 begin
 if a=b then nod:=a else
 if a>b then nod:=nod(a-b,b) else nod:=nod(b-a,a);
 end;
 
var a,b:natur;
begin
Writeln('Vvedite 2 naturalnykh chysla');
Readln(a,b);
Writeln('NOD=',nod(a,b));
Readln
end.
2
Фиговый студент
 Аватар для Mr.Gadget
48 / 6 / 7
Регистрация: 26.09.2013
Сообщений: 550
Записей в блоге: 1
17.03.2014, 01:55  [ТС]
ахх, увидел. Скобки с числами потерял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2014, 01:55
Помогаю со студенческими работами здесь

Найти набольший общий делитель чисел A, B, C, создав процедуру для нахождения НОД двух натуральных чисел
Найти набольший общий делитель чисел A, B, C, создав процедуру для нахождения НОД двух натуральных чисел.

Даны натуральные числа m, n. Вычислить наибольший общий делитель чисел m, n (НОД), используя рекурсивную функцию вычисления НОД.
Даны натуральные числа m, n. Вычислить наибольший общий делитель чисел m, n (НОД), используя рекурсивную функцию вычисления НОД, основанную...

Найти наибольший общий делитель (НОД) двух натуральных чисел M и N по алгоритму Евклида
Найти наибольший общий делитель (НОД) двух натуральных чисел M и N по алгоритму Евклида. Если M &gt; N, то НОД(М,N) = НОД(M–N,N), т.е....

Наибольший общий делитель двух натуральных чисел A и B, используя алгоритм Евклида
помогите пожалуйста((( долго уже думаю над прогой.... вобщем задание... Описать не рекурсивную функцию NOD(A,B) целого типа, находящую...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru