(К. Багдасарян) Напишите программу, которая перебирает целые числа, большие \(2~700~000,\) в порядке возрастания и ищет среди них числа, оканчивающиеся на \(34,\) представленные в виде произведения простых множителей, среди которых найдется число, повторяющееся не менее \(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 = 2_700_034
while q < 5:
div = factor(n)
nd = set(x for x in div if div.count(x) > 4)
if len(nd):
print(n, min(nd))
q += 1
n += 100
Ответ:
\(2706534 \,\, 3\)
\(2722734 \,\, 7\)
\(2730834 \,\, 3\)
\(2755134 \,\, 3\)
\(2779434 \,\, 3\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене