Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300425.\)
Среди натуральных чисел, меньших \(10^9,\) найдите числа, удовлетворяющих маске \(7{*}53{?}3{*}1\) и делящиеся на \(2627,\) у которых сумма цифр – простое число. Запишите в ответе найденные числа в порядке возрастания, справа от каждого числа запишите частное от его деления на \(2627.\)
Решение:
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 = 753031 + (2627 - 753031 % 2627) % 2627
for n in range(st, 10**9, 2627):
if fnmatch(str(n), '7*53?3*1') and is_prime(sum(int(z) for z in str(n))):
print(n, n // 2627)
Ответ:
\(75323971 \,\, 28673\)
\(715313711 \,\, 272293\)
\(753536561 \,\, 286843\)
\(775393201 \,\, 295163\)
\(785323261 \,\, 298943\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене