Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
1

Составить программу определения наибольшего общего делителя двух неотрицательных чисел НОД (a, b) по алгоритму Евклида.

07.07.2010, 14:24. Показов 7459. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Есть такая вот задачка:

Составить программу определения наибольшего общего делителя двух неотрицательных
чисел НОД (a, b) по алгоритму Евклида. Если a=b, то НОД (a, b) = a или НОД (a, b) = b,
иначе, если a>b, то НОД (a, b) = НОД (ab, b), иначе НОД (a, b) = НОД (a, ba). Последнее
действие выполняется до тех пор, пока a не станет равным b.

есть ли у кого ни будь исходники? наверника уже решалась не однократно))

или может, подскажите как она решается...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2010, 14:24
Ответы с готовыми решениями:

Составьте программу определения наибольшего общего делителя двух натуральных чисел
1. Составьте программу получения в порядке убывания всех делителей данного числа. for i:=n downto...

Составить программу для нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел
Доюрый день! помогите пожалуйста мне решить задачей Организация процедур, использование процедур...

Написать программу нахождения наибольшего общего делителя двух чисел
ПоМоГиТе получить зачет Написать программу нахождения наибольшего общего делителя двух чисел....

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

6
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.07.2010, 14:39 2
Pascal
1
2
3
4
5
6
7
8
function Nod(a,b:integer):integer;{нахождение НОД алгоритм Эвклида}
begin
while a <> b do
if a > b then
if a mod b <> 0 then a:=a mod b else a:=b
 else if b mod a <> 0 then b:=b mod a else b:=a;
Nod:=a
end;
Добавлено через 37 секунд
Полностью программы глянь здесь
https://www.cyberforum.ru/sear... id=1728227
1
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
08.07.2010, 08:18  [ТС] 3
спасибо, погляжу))

Добавлено через 17 часов 36 минут
Puporev, а пример который вы привели, это и есть НОД по Евклиду я так понял? остается лиш подставить функцию по усовию задачи?
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.07.2010, 08:53 4
DenProx, А нафига бы я тогда писал

Цитата Сообщение от Puporev Посмотреть сообщение
function Nod(a,b:integer):integer;{нахождение НОД алгоритм Эвклида}
0
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
08.07.2010, 09:11  [ТС] 5
Puporev, сори, чет ступил)))) извиняюсь)

Добавлено через 16 минут
оформил примерно так:
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
26
27
28
29
30
31
32
33
function Nod(a,b:integer):integer;{нахождение НОД алгоритм Эвклида}
begin
while a <> b do
if a > b then
if a mod b <> 0 then a:=a mod b else a:=b
 else if b mod a <> 0 then b:=b mod a else b:=a;
Nod:=a
end;
 
var aa,bb : integer;
 
begin
WriteLn('Press A: '); read(aa);
WriteLn('Press B: '); read(bb);
 
if aa = bb then
begin
  Nod(aa,bb) := aa or Nod(aa,bb) := bb;
end else
if aa>bb then
begin
  Nod(aa,bb) := Nod(aa*bb,bb);
end else
begin
  while aa<>bb do
    Nod(aa,bb) := Nod(aa, bb*aa);
  end;
end;
 
writeln('NOD = ',nod(aa,bb));
readln;
readln;
end.
но прога не работает, не подскажите где я накосячил? )
0
Почетный модератор
64303 / 47598 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
08.07.2010, 09:13 6
Pascal
1
2
3
4
5
var aa,bb : integer;
begin
WriteLn('Enter A: '); readln(aa);
WriteLn('Enter B: '); readln(bb);
write('Nod=',Nod(aa,bb));
0
Техник
318 / 176 / 27
Регистрация: 09.10.2009
Сообщений: 3,109
08.07.2010, 09:17  [ТС] 7
Puporev, ну в первую очередь ругается на присвоение во в этом месте:
Pascal
1
Nod(aa,bb) := aa or Nod(aa,bb) := bb;
Добавлено через 1 минуту
аа! это опять так называемый случай - Тупизны)))
0
08.07.2010, 09:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.07.2010, 09:17
Помогаю со студенческими работами здесь

Рекурсия: поиск наибольшего общего делителя двух чисел
Помогите плиз... Нахождение наибольшего общего делителя двух чисел.

Составить программу для нахождения наибольшего общего делителя
Народ,помогите решить следующие задачки по Pascal: 1) Даны натуральное число N и...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru