(Н. Сафронов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Среди натуральных чисел, не превышающих \(10^7,\) найдите все числа, соответствующие маске \(12{*}348,\) которые делятся на \(12\) без остатка и имеют ровно \(12\) делителей. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа — максимальный делитель, не равный самому числу.
Решение:
Python
from math import isqrt
for n in range(12348, 10**7, 1000):
if n % 12 != 0:
continue
ns = str(n)
if ns[:2] == '12':
divs = {d for x in range(1, isqrt(n) + 1) if n % x == 0
for d in (x, n // x)}
if len(divs) == 12:
dl = list(divs)
dl.sort()
print(n, dl[-2])
Ответ:
\(126348 \,\, 63174\)
\(1203348 \,\, 601674\)
\(1215348 \,\, 607674\)
\(1242348 \,\, 621174\)
\(1257348 \,\, 628674\)
\(1266348 \,\, 633174\)
\(1275348 \,\, 637674\)
\(1287348 \,\, 643674\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене