(В. Селезнев) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Среди натуральных чисел, больших \(3850000,\) найдите числа, все простые делители которых, выписанные без пробелов по возрастанию, образуют число, соответствующее маске «\(27{*}1{?}1\)». Например, число \(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 = 3850000
while q < 5:
n += 1
divs = sorted(list(set(factor(n))))
ns = ''.join(map(str, divs))
if len(ns) > 4 and ns[:2] == '27' and ns[-1] == ns[-3] == '1':
print(n, divs[-1])
q += 1
Ответ:
\(3850784 \,\, 17191\)
\(3851246 \,\, 1151\)
\(3851324 \,\, 191\)
\(3851834 \,\, 275131\)
\(3852254 \,\, 275161\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене