Предмет: Информатика,
автор: dima228132
ДАЮ 70 БАЛЛОВ ЗА ПРАВИЛЬНЫЙ КОД НА PHYTON 3
По каналу связи передаются данные в виде последовательности положительных целых чисел. Количество чисел заранее неизвестно, но не менее двух, признаком конца данных считается число 0. Нужно найти контрольное значение. Оно равно такому максимально возможному произведению двух чисел из переданного набора, которое делится на 7, но не делится на 49. Если такое произведение получить нельзя, контрольное значение считается равным 1.
Использование массивов в данной задаче запрещено.
Входные данные
В каждой строке исходных данных содержится одно целое число. Сначала идут строки с основными данными – положительными числами, затем число 0 (признак окончания данных).
Выходные данные
Программа должна вывести одно число - контрольное значение.
Примеры
Ввод
Вывод
10
14
0
140
7
75
80
6
75
0
560
Ответы
Автор ответа:
4
Два соображения:
- Произведение делится на 7, но не делится на 49, если один из сомножителей делится на 7 (но не на 49), а второй - не делится на 7.
- Произведение будет больше, если каждый из сомножителей будет больше
Получаем такую идею: будем хранить максимальное из всех чисел, делящихся на 7, но не делящихся на 49, и максимальное из чисел, не делящихся на 7. Их произведение будет ответом.
Реализация (Python 3.8.1)
max_div_7 = 0
max_not_div_7 = 0
while (x := int(input())) != 0:
if x % 7 != 0:
max_not_div_7 = max(max_not_div_7, x)
elif x % 7 == 0 and x % 49 != 0:
max_div_7 = max(max_div_7, x)
if max_div_7 == 0 or max_not_div_7 == 0:
print(1)
else:
print(max_div_7 * max_not_div_7)
dima228132:
Спасибо
Пишу на Python 3.7 у меня не читает условие от while как это записать
Замените цикл на бесконечный (условие на True), и в начале цикла пишите что-то вроде x = input(); if x == 0: break
Я не понимаю(( можешь пж прям код написать
Полный код в комментариях неудобно писать ( Попробуйте сделать то, что описано выше. В начале цикла, сразу после while, считайте с клавиатуры целое число x и, если оно равно нулю, выйдите из цикла. Если что-то конкретное не получится пишите
Похожие вопросы
Предмет: Українська мова,
автор: denchic77
Предмет: Английский язык,
автор: никита1200
Предмет: Английский язык,
автор: Mark50000
Предмет: Геометрия,
автор: vajdfut5