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

Ответы на вопрос

а)
var a,b:integer;
begin
read(a,b);
repeat
if a>b then
a:=a-b
else
b:=b-a;
until (a=b);
write(a);
end.
б)
var a,b:integer;
begin
read(a,b);
while (a<>b) do
if a>b then
a:=a-b
else
b:=b-a;
write(a);
end.



Для вычисления наибольшего общего делителя (НОД) двух целых чисел можно использовать алгоритм Евклида. Этот алгоритм основан на идее того, что НОД двух чисел не изменится, если большее число заменить на остаток от деления на меньшее число. Этот процесс повторяется до тех пор, пока одно из чисел не станет равным нулю. Затем НОД будет равен ненулевому числу, которое останется.
Давайте реализуем программу на языке Паскаль, используя оба варианта циклов: repeat
и while
.
а) Реализация с помощью repeat
:
pascalprogram GCD_With_Repeat; var a, b: Integer; function GCD(a, b: Integer): Integer; begin while b <> 0 do begin a := a mod b; a := a + b; b := a - b; a := a - b; end; Result := a; end; begin WriteLn('Введите два целых числа для вычисления НОДа:'); ReadLn(a, b); WriteLn('Наибольший общий делитель (НОД): ', GCD(abs(a), abs(b))); end.
б) Реализация с помощью while
:
pascalprogram GCD_With_While; var a, b: Integer; function GCD(a, b: Integer): Integer; var temp: Integer; begin while b <> 0 do begin temp := b; b := a mod b; a := temp; end; Result := abs(a); end; begin WriteLn('Введите два целых числа для вычисления НОДа:'); ReadLn(a, b); WriteLn('Наибольший общий делитель (НОД): ', GCD(a, b)); end.
Обе программы работают одинаково и будут запрашивать у пользователя ввод двух целых чисел, после чего вычислят и выведут на экран наибольший общий делитель (НОД) с помощью алгоритма Евклида.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili