ЗА ПРАВИЛЬНЫЙ КОД НА PHYTON 3

По каналу связи передаются данные в виде последовательности положительных целых чисел. Количество чисел заранее неизвестно, но не менее двух, признаком конца данных считается число 0. Нужно найти контрольное значение. Оно равно такому максимально возможному произведению двух чисел из переданного набора, которое делится на 7, но не делится на 49. Если такое произведение получить нельзя, контрольное значение считается равным 1.

Использование массивов в данной задаче запрещено.

Входные данные

В каждой строке исходных данных содержится одно целое число. Сначала идут строки с основными данными – положительными числами, затем число 0 (признак окончания данных).

Выходные данные

Программа должна вывести одно число - контрольное значение.

Примеры

Ввод

Вывод

10

14

0

140

7

75

80

6

75

0

560

206Sasha2000 206Sasha2000    2   16.03.2020 02:34    8

Ответы
superyg superyg  11.10.2020 22:32

Два соображения:

Произведение делится на 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)

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика