Среди целых чисел, принадлежащих числовому отрезку [268312; 336492], найдите числа, которые представляют собой произведение двух различных простых делителей. Запишите в ответе количество таких чисел и минимальное из них. Числа запишите через пробел.
def is_prime(number): # функция для проверки простоты числа
if number == 1: return False
for div in range(2, int(number ** 0.5) + 1):
if number % div == 0:
return False
return True
def find_numbers(number): # функция, которая определяет можно ли получить число произведение двух его простых делителей
for div in range(2, int(number ** 0.5) + 1):
if number % div == 0:
if is_prime(div) and is_prime(number // div) and div != number // div: # если первый и обратный делители - простые числа и при этом не равны друг другу
return True # то составить само число можно
return False
return False
counter = 0
min_number = 0
for i in reversed(range(268312, 336492 + 1)):
if find_numbers(i):
counter += 1
min_number = i
print(counter, min_number)
Ответ: 14380 268313