Составьте программу нахождения наибольшего общего делителя трех чисел, используя следующую формулу: НОД(А, В, С) = НОД(НОД(А, В), С)
Составьте программу нахождения наибольшего общего делителя трех чисел, используя следующую формулу: НОД(А, В, С) = НОД(НОД(А, В), С).
Program zad_2_nica;
var A, B, C: integer;
begin
write (‘Введите A: ‘);
read (A);
write (‘Введите B: ‘);
read (B);
write (‘Введите C: ‘);
read (C);
while (A<>B)
do begin
if A>B
then A:=A-B
else B:=B-A
end;
while (A<>C)
do begin
if A>C
then A:=A-C
else C:=C-A
end;
writeln (‘НОД(A,B,C)=’, A)
end.
0 / 0 / 0 Регистрация: 13.06.2012 Сообщений: 8 |
|
1 |
|
Найти наибольший общий делитель трех чисел13.06.2012, 21:20. Показов 18004. Ответов 1
8.Найти наибольший общий делитель трех чисел.
0 |
CodeR Фрилансер 3417 / 2814 / 3000 Регистрация: 08.02.2012 Сообщений: 8,539 Записей в блоге: 1 |
||||
14.06.2012, 09:19 |
2 |
|||
Сообщение было отмечено Илиодор как решение Решение
0 |
на паскале составить программу нахождения наибольшего общего делителя трех чисел , испол. след. формулу:
Ученик
(120),
закрыт
11 лет назад
Никита Матросов
Мыслитель
(5701)
11 лет назад
var a,b,c: longint;
function nod(a, b: longint): longint;
begin
while (a <> 0) and (b <> 0) do
begin
if a > b then a := a mod b else b := b mod a;
nod := a + b;
end;
end;
begin
read(a,b,c);
Writeln(nod(nod(a,b),c));
end.
Кублен
Оракул
(95418)
11 лет назад
{нахождение НОД}
uses crt;
var
a, b, gcd: longint;
begin
cls;
write(‘vvesti 2 chisla –> ‘); readln(a, b);
while (a <> 0) and (b <> 0) do
if a > b then a := a mod b else b := b mod a;
gcd := a + b;
writeln(‘НОД: ‘, gcd);
readkey;
end.
оформи сама
Перейти к контенту
ГДЗ по Информатике 9 класс. Семакин § 16 Алгоритм Евклида
2. Составьте программу нахождения наибольшего общего делителя трех чисел, используя следующую формулу: НОД(А, В, С) * НОД(НОД(А, В), С).
Ответ
Program zz1;
Var a,b,c:integer; // задаем переменные целого типа
Function Nod(a,b:integer):integer; // вспомогательный алгоритм
Begin
While a<>b do // организуем цикл, используем алгоритм Евклида
if a>b // проверяем условие, если первое число больше второго
then a:=a-b // то, от первого отнимаем второе
else b:=b-a; // иначе, от второго отнимаем первое
Nod:=a; // в связи с тем, что по окончании цикла два числа сравняются, ответом является любое из них
End;
begin
write(‘ Введите три числа ‘); // вводим с клавиатуры три заданных числа
readln(a,b,c);
writeln(‘ НОД трех чисел = ‘, Nod(Nod(a,b),c));
end.
Тема: Турбо паскаль, программа для нахождения НОД трех чисел, помогите (Прочитано 9065 раз)
0 Пользователей и 1 Гость просматривают эту тему.
помогите пожалуйста нужно написать в турбо паскале по теореме Евклида
Нужно по теореме Евклида решить в паскале
составьте программу нахождения наибольшего общего делителя трех чисел используя формулу:НОД(А,В,С)=НОД(НОД(А,В),С)
прошу помогите*
« Последнее редактирование: 24 Ноября 2010, 09:49:43 от Asix »
function nod(a,b:integer):integer;
begin
if a * b = 0 then
nod := a + b
else
nod := nod(a mod b, b mod a);
end;
begin
writeln(nod(nod(12, 1204), 16);
end.
« Последнее редактирование: 24 Ноября 2010, 09:49:49 от Asix »