(К. Багдасарян) Напишите программу, которая перебирает целые числа, большие \(8~000~000,\) в порядке возрастания и ищет среди них числа, оканчивающиеся на \(10,\) представленные в виде произведения простых различных множителей. В ответе запишите в первом столбце таблицы первые пять найденных чисел в порядке возрастания, а во втором столбце – наибольший сомножитель.
Решение:
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 = 8_000_010
while q < 5:
div = factor(n)
if len(div) == len(set(div)):
print(n, max(div))
q += 1
n += 100
Ответ:
\(8000110 \,\, 800011\)
\(8000310 \,\, 266677\)
\(8000410 \,\, 283\)
\(8000510 \,\, 3089\)
\(8000610 \,\, 266687\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене