Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 25. Информатика. ЕГЭ. Основная волна. Резерв. 23.06.2025
- Просмотры: 1446
- Изменено: 21 августа 2025
Напишите программу, которая перебирает целые числа, большие \(15~381~264,\) в порядке возрастания и ищет среди них числа, представленные в виде произведения ровно трёх простых множителей, не обязательно различных, каждый из которых содержит в своей записи ровно одну цифру \(1.\)
В ответе в первом столбце таблицы запишите первые \(5\) найденных чисел в порядке возрастания, а во втором столбце — для каждого из чисел соответствующий им наибольший из найденных множителей.
Количество строк в таблице для ответа избыточно.
Решение:
Python
def sieve(n):
tmp = [1] * n
tmp[0] = tmp[1] = 0
for x in range(2, int(n**0.5) + 1):
if tmp[x]:
for p in range(x**2, n, x):
tmp[p] = 0
ans = []
for p in range(2, n):
if tmp[p]:
ans.append(p)
return ans
primes = sieve(16_000_000)
def divisors(n):
div = []
p = 0
while n > 1:
while n % primes[p] == 0:
div.append(primes[p])
n //= primes[p]
p += 1
return div
q = 0
n = 15_381_264
while q < 5:
n += 1
div = divisors(n)
if len(div) == 3 and all(str(x).count('1') == 1 for x in div):
print(n, max(div))
q += 1
Ответ:
\(15381301 \,\, 38167\)
\(15381887 \,\, 1283\)
\(15382727 \,\, 16007\)
\(15382991 \,\, 8513\)
\(15383141 \,\, 919\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


