Задача к ЕГЭ по информатике на тему «Маски» №2

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

— символ «?» означает ровно одну произвольную цифру;

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

Сколько существует натуральных чисел, соответствующих следующей маске 90?123?  и чтобы разряд десятков, сложенный с учетверенным разрядом единиц, был кратен 13  (то есть для числа 23  это 3∗4 + 2  ). Кроме того, сумма цифр должна быть кратна 3  . В ответ запишите в порядке возрастания найденные числа и соответствующий им результат от целочисленного деления на 39  .

Решение через циклы

for a1 in (’0123456789’):
    for a2 in (’0123456789’):
        s=’90’+a1+’123’+a2 # собираем число, удовлетворяющее маске
        n=3+int(a2)*4 # сумма десятков и 4*единиц
        summa = 0 # сумма цифр числа
        for i in s:
            summa += int(i)
        if n%13==0 and summa%3==0:
            print(int(s), int(s)//39)

Решение через срезы

for x in range(9001230,9091239+1):
    n = str(x)
    # проверяем, что число соответствует маске и сумма десятков и 4*единиц кратно 13 и что сумма цифр числа кратна 3
    if ’90’ in n[:2] and ’123’ in n[3:6]:
        if (int(n[-2]) + 4*int(n[-1])) % 13 == 0 and sum(map(int,n)) % 3 == 0:
            print(x,x//39)

Ответ: 9001239 230801 9031239 231570 9061239 232339 9091239 233108
Оцените статью
Я решу все!