Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

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

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

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

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Голосование за лучший ответ
Юрий Семыкин Искусственный Интеллект (205597) 2 месяца назад
Надёжно, грубо, зримо:
 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)
ПапаВысший разум (144030) 2 месяца назад
Непонятно только, на кой ляд там третья цифра в звёздочке, когда их не может быть больше двух.
Юрий Семыкин Искусственный Интеллект (205597) Папа, Карапет общитался.
ПапаВысший разум (144030) 2 месяца назад
Хотя не, может быть и третья...
Юрий СемыкинИскусственный Интеллект (205597) 2 месяца назад
Поизящнее:
 from itertools import * 
def fnd(k):
res=[]
dig='0123456789'
for i1 in dig:
for m in (0,1,2,3):
for i2 in product( dig,repeat=m):
ts=int('1'+i1+'6154'+''.join(i2)+ '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)
Галина Донченко Знаток (477) спасибо
Похожие вопросы