Задача #1272
Делители и маски
(А.Богданов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Найдите десятиразрядные числа кратные 2023 с максимальной суммой цифр и отвечающие маске «1*1». В ответ запишите частное от деления на 2023 пяти наибольших таких чисел в порядке возрастания.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
839347
933217
937217
988477
988517
from fnmatch import *
a = []
for x in range(0,10**10, 2023):
if len(str(x))==10 and fnmatch(str(x),'1*1'):
a.append(x)
a.sort(key=lambda x: sum(map(int,str(x))))
a = sorted(a[-5:])
for x in a:
print(x//2023)