Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [612376; 875324] числа, у которых ровно 5 простых делителей. В ответ укажите количество нечётных чисел среди таких чисел и через пробел сумму цифр подходящих чисел.
def simple(x): # функция проверки, что число - простое
return x > 1 and all(x % y for y in range(2,int(x**0.5)+1))
def divs(x): # функция, которая возвращает отсортированный список делителей числа
d = set() # Множество для хранения делителей
for i in range(1,int(x**0.5)+1):
if x % i == 0:
d |= {i,x//i} # Добавляем делитель и парный ему в множество
return sorted(d) # Возвращаем отсортированный список делителей числа x
ans = []
sm = 0
for x in range(612376,875325):
d = [i for i in divs(x) if simple(i)] # cписок, в котором хранятся простые делители числа
if len(d) == 5:
if x % 2 != 0:
ans += [x]
sm += sum(map(int,str(x))) # подсчёт суммы цифр числа
print(len(ans),sm)
Ответ: 1541 365625