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

Ниже записана программа, которая вводит натуральное число x, выполняет преобразования, а затем выводит результат. Укажите наименьшее значение x, при вводе которого программа выведет число 45. x = int(input())
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
print(a)

Для решения я изменил данную в условии программу, но она не работает, подскажите , в чем ошибка?

for x1 in range(10000):
x=x1
a = x - 61
b = 3*x - 138
while a != b:
if a > b:
a -= b
else:
b -= a
if a==45:
print(x1)
break
(правильный ответ:106)

Ответ:
наташа6710
наташа6710
07.11.2021 08:50

Здесь чутка надо подумать и увидеть, что мы должны в цикле for идти не от 0, а от числа 62, потому что если x < 62, то в переменной "a" мы получаем отрицательное число(или ноль в случае с x = 61), из-за этого наш цикл while будет выполняться бесконечно.

Исправление:

for x1 in range(62, 10009):

   x=x1

   a = x - 61

   b = 3*x - 138

   while a != b:

       if a > b:

           a -= b

       else:

           b -= a

   if a == 45:

       print(x1)

       break

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?