Задача #1792

Делители и маски

Уровень ЕГЭ

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

  • символ «?» означает ровно одну произвольную цифру;
  • символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

Среди натуральных чисел, не превышающих 107, найдите все простые числа, соответствующие маске 3?1111*.

В ответе запишите все найденные числа в порядке возрастания.

Количество строк в таблице для ответа избыточно.

Ответ
Войдите, чтобы история ответов и статистика сохранялись.
Решение Нажми, чтобы открыть

Ответ

311111
361111
3011117
3011119
3311117
3611119
3811117
3911111

Видео по задаче

from fnmatch import fnmatch

def is_prime(x):
if x == 1:
return False
for d in range(2, int(x**0.5)+1):
if x % d == 0:
return False
return True

for x in range(1, 10**7+1):
if fnmatch(str(x), '3?1111*'):
if is_prime(x):
print(x)
Быстрый переход
Перейти к задаче