EGEsoll - сборник решений задач из ЕГЭ

Задача 2

Напишите программу, которая перебирает целые числа, большие 5 000 000, в порядке возрастания и ищет среди них числа, представимые в виде произведения ровно трёх простых множителей, необязательно различных, каждый из которых содержит в своей записи хотя бы одну цифру 3 или 7. В ответе запишите первые пять чисел в порядке возрастания.

Добавлено: 23.03.26 18:57

Перейти к решению

Решение

Решение на языке Python:

def contains_3_or_7(n):
    return "3" in str(n) or "7" in str(n)


count = 0
x = 5_000_001
while count < 5:
    factors = []
    temp = x
    d = 2
    while d * d <= temp:
        while temp % d == 0:
            factors.append(d)
            temp //= d
        d += 1
    if temp > 1:
        factors.append(temp)

    if len(factors) == 3 and all(contains_3_or_7(p) for p in factors):
        print(x, factors)
        count += 1
    x += 1

Ответ: 5000001 5000003 5000007 5000013 5000019

Автор - rubygem17

Объяснение

None

Назад