Задача к ЕГЭ по информатике на тему «делители числа» №3

Среди целых чисел, принадлежащих числовому отрезку [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
Оцените статью
Я решу все!