Вопрос задан 19.07.2023 в 11:17. Предмет Информатика. Спрашивает Куликова Кристина.

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

б) с оператором while
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Жанахмет Даниал.

по алгоритму евклида:

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.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

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

а) Программа с оператором repeat:

python
def 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:

python
def 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). В обоих случаях программа будет принимать два целых числа от пользователя и выводить наибольший общий делитель (НОД) этих чисел.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос