🎯 До ЕГЭ по информатике:
--дней
:
--часов
:
--минут
:
--секунд
25

Делимость и делители

Простые, делители, простые делители. Маски fnmatch.

Python
# Простое число
def prost(n):
    return n > 1 and all(n%d != 0 for d in range(2, int(n**0.5)+1))

# Все делители
def delit(n):
    a = set()
    for i in range(1, int(n**0.5)+1):
        if n % i == 0:
            a.add(i); a.add(n // i)
    return a

# Простые делители
def prost_del(n):
    a = set()
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            if prost(i): a.add(i)
            if prost(n//i): a.add(n//i)
    return a
Способ 2
# Маски fnmatch
from fnmatch import *
for i in range(18579, 10**10 + 1, 18579):
    if fnmatch(str(i), '54?1?3*7'):
        print(i, i // 18579)

# Пример: найти R с макс кол-вом делителей
mx = 0; ans = 0
for R in range(2, 10**6):
    d = len(delit(R))
    if d >= mx and prost(R + 2):
        mx = d; ans = R
print(ans)

# Поиск с условиями на делители
for n in range(2, 10**6):
    d = delit(n)
    pd = prost_del(n)
    if len(pd) == 3 and sum(d) % 2 == 0:
        print(n)

📚 Теория

Делители чисел. Проверка на простоту, поиск делителей по маске.