Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Среди натуральных чисел, не превышающих 10^10 , найдите первые два числа, соответствующие маске 1?6154*1, деля

Среди натуральных чисел, не превышающих 10^10 , найдите первые два числа, соответствующие маске 1?6154*1, делящиеся на 1987 без остатка. В ответе запишите сначала найденное число, а через пробел, соответствующее ему результат деления этого числа на 1987, найденные числа запишите в порядке возрастания через пробел в 2 строки.
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

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

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

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

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
9мес

Надёжно, грубо, зримо:

12345678910111213141516
 def fnd(k): 
    res=[] 
    for i1 in '0123456789': 
        for i2 in ['','0','1','2','3','4','5','6','7','8','9']: 
            for i3 in ['','0','1','2','3','4','5','6','7','8','9']: 
                for i4 in ['','0','1','2','3','4','5','6','7','8','9']: 
                    ts=int('1'+i1+'6154'+i2+i3+i4+'1') 
                    if ts%1987: 
                        continue 
                    res.append(ts) 
                    if len(res)>=k: 
                        return res 
    return res 
# 
for i in fnd(2): 
    print(i, i//1987)