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

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

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

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

Например, для числа 105 F = 35− 3 = 32  .

def f(number): # функция, которая считает разность максимального и минимального нетривиального делителей
    for div in range(2, int(number ** 0.5) + 1):
        if number % div == 0:
            return number // div - div
    return 0

counter = 0
for i in range(850_001, 850_000 + 1000000):
    k = f(i)
    if k != 0 and k % 13 == 0:
        counter += 1
        print(i, k, end=" ")
    if counter == 6:
        break

Ответ: 850022 425009 850048 425022 850053 283348 850074 425035 850099 7410 850100 425048
Оцените статью
Я решу все!