(Е. Джобс) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300425.\)
Найдите первые пять чисел, больших \(500~000,\) сумма делителей которых соответствует маске «\({*}{7}{?}\)». Найденные числа выведите в порядке возрастания, справа от каждого запишите найденную сумму делителей.
Решение:
Python
q = 0
for n in range(500_001, 10**100):
divs = {d for i in range(1, int(n ** 0.5) + 1) if n % i == 0
for d in (i, n // i)}
sum_ = sum(divs)
if str(sum_)[-2] == '7':
print(n, sum_)
q += 1
if q == 5:
break
Ответ:
\(500001 \,\, 666672\)
\(500048 \,\, 968874\)
\(500069 \,\, 500070\)
\(500079 \,\, 666776\)
\(500114 \,\, 750174\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене