(М. Ишимов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Среди натуральных чисел, не превышающих \(10^7,\) найдите все числа, соответствующие маске \(3{*}52{?},\) у которых нечётное количество делителей. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им максимальные делители, не считая самого числа.
Решение:
Python
from math import isqrt
for a in range(4):
for b in range(10**a):
for c in range(10):
n = 3 * 10**(a + 3) + b * 10**3 + 52 * 10 + c
divs = {d for x in range(2, isqrt(n) + 1) if n % x == 0
for d in (x, n // x)}
if len(divs) % 2 == 1:
print(n, max(divs))
Ответ:
\(3143529 \,\, 1047843\)
\(3175524 \,\, 1587762\)
\(3200521 \,\, 1789\)
\(3845521 \,\, 103933\)
\(3908529 \,\, 1302843\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене