Номер 5438 (А. Сардарян) На вход алгоритма подаётся два натуральных числа N и M. Алгоритм строит по ним новое число R следующим образом:
Например, для N = 256 и M = 108 получаем P1 = 2·6·8 = 96 и P2 = 5·1 = 5, так что R = |96 - 5|= 91. Укажите минимальное число M, при котором для N = 120 получается R = 29.
def F(A):
- Определяем функцию F
с параметром A
.temp = 1
- Инициализируем переменную temp
со значением 1.for x in A:
- Создаём цикл по элементам A
с помощью переменной x
.temp *= x
- Умножаем текущее значение temp
на x
и присваиваем результат temp
.return temp
- Возвращаем значение переменной temp
.for m in range(1, 1000):
- Создаём цикл по диапазону от 1 до 999 с помощью переменной m
.n = 120
- Присваиваем переменной n
значение 120.P = [int(i) for i in str(n)] + [int(i) for i in str(m)]
- Создаем список P
, который содержит целочисленные значения цифр из строки n
и m
.P1 = [i for i in P if i != 0 and i % 2 == 0]
- Создаем список P1
, который содержит только не нулевые четные числа из списка P
.P2 = [i for i in P if i % 2 != 0]
- Создаем список P2
, который содержит только нечетные числа из списка P
.p1, p2 = F(P1), F(P2)
- Вызываем функцию F
с аргументом P1
и присваиваем результаты переменным p1
и p2
.