(В. Селезнев) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Среди натуральных чисел, больших \(4679000,\) найдите числа, все простые делители которых, выписанные без пробелов по возрастанию, образуют число, соответствующее маске «\(27{*}39{?}\)» или «\(34{*}2{?}7\)». Например, число \(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 = 4679000
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[-3:-1] == '39' or ns[:2] == '34' and ns[-3] == '2' and ns[-1] == '7'):
print(n, divs[-1])
q += 1
Ответ:
\(4679042 \,\, 397\)
\(4679733 \,\, 36277\)
\(4680214 \,\, 30391\)
\(4680309 \,\, 3257\)
\(4680873 \,\, 1297\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене