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

Напишите программу, которая ищет среди целых чисел, превышающих 20560, первые четыре числа, удовлетворяющих условию: количество делителей, кратных шести и не равных самому числу, равно трем.

В ответе запишите четыре пары чисел в порядке возрастания первых чисел в паре: число и максимальный делитель, кратный шести и не равный самому числу.

Формат ввода ответа: число1 его_макс_дел число2 его_макс_дел число3 его_макс_дел и тд.

c = 0
for i in range(20561, 30000):
    ds = [] # cписок делителей кратных 6
    for d in range(2, int(i**0.5)+1):
        if i % d == 0:
            if d % 6 == 0:
                ds.append(d)
            if (i//d) % 6 == 0:
                ds.append(i//d)
        if len(ds) > 3: # для оптимизации выходим из функции если таких делителей больше 3 - такие числа нам не подходят
            break
    if len(ds) == 3:
        c += 1
        print(i, max(ds))
    if c == 4:
        break

Ответ: 20562 894 20586 438 20622 2946 20634 1086
Оцените статью
Я решу все!