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

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

по алгоритму евклида:
var a,b:integer;
begin
readln(a,b);
repeat
if a>b then
a:=a mod b
else
b:=b mod a;
until (a=0) or (b=0);
writeln(a+b);
end.
-------------------------
var a,b:integer;
begin
readln(a,b);
while (a<>0) and (b<>0) do
if a>b then
a:=a mod b
else
b:=b mod a;
writeln(a+b);
end.



Для вычисления наибольшего общего делителя (НОД) двух целых чисел можно использовать алгоритм Евклида. Алгоритм Евклида основан на простой итеративной операции нахождения остатка от деления, которая выполняется до тех пор, пока не будет найден НОД.
а) Программа с оператором repeat
:
pythondef gcd_with_repeat(a, b):
while b != 0:
a, b = b, a % b
return a
def main():
try:
num1 = int(input("Введите первое целое число: "))
num2 = int(input("Введите второе целое число: "))
gcd = gcd_with_repeat(num1, num2)
print("Наибольший общий делитель:", gcd)
except ValueError:
print("Ошибка ввода. Введите целые числа.")
if __name__ == "__main__":
main()
б) Программа с оператором while
:
pythondef gcd_with_while(a, b):
while b != 0:
a, b = b, a % b
return a
def main():
try:
num1 = int(input("Введите первое целое число: "))
num2 = int(input("Введите второе целое число: "))
gcd = gcd_with_while(num1, num2)
print("Наибольший общий делитель:", gcd)
except ValueError:
print("Ошибка ввода. Введите целые числа.")
if __name__ == "__main__":
main()
Оба этих варианта реализуют один и тот же алгоритм Евклида, но с разными типами циклов (repeat
и while
). В обоих случаях программа будет принимать два целых числа от пользователя и выводить наибольший общий делитель (НОД) этих чисел.


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








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