Задание 25. Информатика. 2023-3

Просмотры: 103
Изменено: 24 ноября 2024

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

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

Решение:

Python


for n in range(4):
    for i in range(10**n):
        for k in range(10):
            x = 32*10**(4+n) + i*10**4 + 21*100 + k*10 + 4
            if x % 2049 == 0:
                print(x, x//2049)

Ответ:
\(321992154\) \(157146\)
\(324082134\) \(158166\)
\(326172114\) \(159186\)
\(329102184\) \(160616\)