Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300425.\)
Среди натуральных чисел, меньших \(10^9,\) найдите числа, удовлетворяющих маске \(3{*}51{?}5{*}7\) и делящиеся на \(2423,\) у которых сумма цифр – простое число. Запишите в ответе найденные числа в порядке возрастания, справа от каждого числа запишите частное от его деления на \(2423.\)
Решение:
Python
from fnmatch import fnmatch
def is_prime(n):
if n <= 2:
return n == 2
if n & 1 == 0:
return False
for x in range(2, int(n**0.5) + 1):
if n % x == 0:
return False
return True
st = 351057 + (2423 - 351057 % 2423) % 2423
for n in range(st, 10**9, 2423):
if fnmatch(str(n), '3*51?5*7') and is_prime(sum(int(z) for z in str(n))):
print(n, n // 2423)
Ответ:
\(35155307 \,\, 14509\)
\(319518587 \,\, 131869\)
\(325551857 \,\, 134359\)
\(338151457 \,\, 139559\)
\(351453727 \,\, 145049\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене