Задание 25. Информатика. Апробация 10.03.2023

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

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

Среди натуральных чисел, не превышающих \(10^{9}\), найдите все числа, соответствующие маске \(2*5443?1\), делящиеся на \(23\) без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на \(23\). Количество строк в таблице для ответа избыточно.

Решение:

Python


for n in range(2):
    for k in range(10**n):
        for j in range(10):
            z = 2 * 10**(6+n) + k * 10**6 + 5443 * 100 + j * 10 + 1
            if z % 23 == 0:
                print(z, z//23)

Ответ:
\(22544301\)    \(980187\)
\(23544341\)    \(1023667\)
\(24544381\)    \(1067147\)
\(28544311\)    \(1241057\)
\(29544351\)    \(1284537\)