Задание 25. Информатика. ЕГЭ. Поляков-2575
- Просмотры: 155
- Изменено: 23 ноября 2024
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку \([244143; \, 1367821]\), числа, имеющие ровно \(5\) различных делителей. В ответе для каждого найденного числа запишите два его наибольших делителя, не равных самому числу, в порядке возрастания.
Решение:
Python
import math
def is_prime(n):
if n == 1:
return False
if n in (2, 3):
return True
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
d = math.ceil(244143**0.25)
while 244143 <= d ** 4 <= 1367821:
if is_prime(d):
print(d**2, d**3)
d += 1
Ответ:
529 12167
841 24389
961 29791