При этом сумма двух разрядов не может быть больше 18, так как максимальная цифра в 10-ной системе счисления 9, то максимальная сумма двух цифр = 9+9=18.
т.е мы сразу исключаем вариант 3 и 4 т.к. в них присутствуют суммы разрядов 19 и 21, а такого быть не может.
Также есть условие
К нему дописывается результат сложения средних разрядов по такому правилу: если он меньше первой суммы, то полученное число приписывается к первому слева, иначе – справа.
То есть получается, что две первые суммы разрядов записаны в порядке возрастания, а по такому условию, из двух оставшихся подходит только вариант 2
# 1.
# Полагаю, что в техническом задании ошибка и считаю фразу "делятся на" фразой "целочисленно делятся на".
def IsDivisible(digit, n): return (digit % n == 0)
digits=range(20, 50 + 1)
required=[str(digit) for digit in digits if IsDivisible(digit, 2) and not IsDivisible(digit, 5)]
print("Result:\n", '\n'.join(required))
# 2.
# Боль от запятой. Голову изломал от этого дробного остатка...
digits=range(35, 87 + 1)
required=[str(digit) for digit in digits if digit % 7 == 1 or digit % 7 == 2 or digit % 7 == 5]
print("Result:\n", '\n'.join(required))
2)121514
Объяснение:
Предположим, у нас такие два числа: abc и xyz.
Сумма старших разрядов: a+x
Сумма средних разрядов: b+y
Сумма младших разрядов: c+z
При этом сумма двух разрядов не может быть больше 18, так как максимальная цифра в 10-ной системе счисления 9, то максимальная сумма двух цифр = 9+9=18.
т.е мы сразу исключаем вариант 3 и 4 т.к. в них присутствуют суммы разрядов 19 и 21, а такого быть не может.
Также есть условие
К нему дописывается результат сложения средних разрядов по такому правилу: если он меньше первой суммы, то полученное число приписывается к первому слева, иначе – справа.
То есть получается, что две первые суммы разрядов записаны в порядке возрастания, а по такому условию, из двух оставшихся подходит только вариант 2