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

Напишите программу. которая перебирает целые числа, большие 650 000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный делитель, не равный самому числу, не является простым числом. Программа должна найти и вывести первые 6 таких чисел и соответствующие им значения упомянутых делителей.

Формат вывода: для каждого из 6 таких найденных чисел через пробел сначала выводится само число, затем упомянутый делитель. Числа выводятся в порядке возрастания найденных чисел.

Пример вывода: число1 F1 число2 F1…

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 check_max_div(number): # функция, которая проверяет, что максимальный нетривиальный делитель составное число
    for div in range(2, int(number ** 0.5) + 1):
        if number % div == 0:
            if not is_prime(number // div):
                return number // div
            return False
    return False

counter = 0
for i in range(650_001, 650_000 + 1000000):
    k = check_max_div(i)
    if k != 0:
        counter += 1
        print(i, k, end=" ")
    if counter == 6:
        break

Ответ: 650001 216667 650003 28261 650004 325002 650005 130001 650006 325003 650007 216669
Оцените статью
Я решу все!