*(В. Лашин) Напишите программу, которая перебирает целые числа, большие \(13~475~124,\) в порядке возрастания и ищет среди них числа, представленные в виде произведения \(5\) простых множителей, не обязательно различных, каждый из которых содержит в своей записи хотя бы одну цифру \(5.\) В ответе в первом столбце таблицы запишите первые \(5\) найденных чисел в порядке возрастания, а во втором столбце – соответствующий наибольший из найденных множителей для каждого из них.
Решение:
Python
def factor(x):
ans = []
for i in range(2, int(x ** 0.5) + 1):
while x % i == 0:
ans.append(i)
x //= i
if x > 1:
ans.append(x)
return ans
q = 0
n = 13_475_124
while q < 5:
div = factor(n)
if len(div) == 5 and all('5' in str(x) for x in div):
print(n, max(div))
q += 1
n += 1
Ответ:
\(13476875 \,\, 21563\)
\(13480625 \,\, 21569\)
\(13485625 \,\, 21577\)
\(13491875 \,\, 21587\)
\(13493125 \,\, 21589\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене