(В. Селезнев) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Среди натуральных чисел, больших \(2352000,\) найдите числа, все простые делители которых, выписанные без пробелов по возрастанию, образуют число, соответствующее маске «\(10{*}29\)». Например, число \(234566\) имеет \(3\) простых делителя: \(2, \, 17, \, 6899,\) они образуют число \(2176899,\) которое соответствует маске «\(21{*}9\)». В ответе укажите первые \(5\) найденных чисел в порядке возрастания, справа от каждого числа запишите его наибольший простой делитель.
Решение:
Python
from math import isqrt
def factor(n):
divs = []
for d in range(2, isqrt(n) + 1):
while n % d == 0:
divs.append(d)
n //= d
if n > 1:
divs.append(n)
return divs
q = 0
n = 2352000
while q < 5:
n += 1
divs = sorted(list(set(factor(n))))
ns = ''.join(map(str, divs))
if len(ns) > 3 and ns[:2] == '10' and ns[-2:] == '29':
print(n, divs[-1])
q += 1
Ответ:
\(2367803 \,\, 22129\)
\(2371987 \,\, 23029\)
\(2378503 \,\, 22229\)
\(2382287 \,\, 229\)
\(2386529 \,\, 23629\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене