(Е. Джобс) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([25317; \, 51237],\) которые имеют хотя бы \(6\) различных простых делителей. Делители \(1\) и само число не учитываются. Запишите в ответе для каждого найденного числа само число и его максимальный простой делитель.
Решение:
Python
def is_prime(n):
if n <= 2:
return n == 2
if n & 1 == 0:
return False
for d in range(3, int(n ** 0.5) + 1, 2):
if n % d == 0:
return False
return True
for n in range(25317, 51238):
divs = {d for i in range(2, int(n ** 0.5) + 1) if n % i == 0
for d in (i, n // i)}
ans = {d for d in divs if is_prime(d)}
if len(ans) > 5:
print(n, max(ans))
Ответ:
\(30030 \,\, 13\)
\(39270 \,\, 17\)
\(43890 \,\, 19\)
\(46410 \,\, 17\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене