Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Найдите такое натуральное число, соответствующее следующей маске (число не может начинаться с нуля) и делящееся на
без остатка. В ответ запишите найденное число и соответствующее ему частное от деления на
.
Решение через циклы
for a1 in (’123456789’): # Исключаем для первого места 0, так как числа не могут начинаться с 0
for a2 in (’0123456789’):
for a3 in (’0123456789’):
for a4 in (’0123456789’):
for a5 in (’0123456789’):
for a6 in (’0123456789’):
s=a1+a2+a3+’1’+a4+a5+’1’+a6 # составляем число, удовлетворяющее маске
n=int(s)
if n%434343==0:
print(n,n//434343)
Решение через срезы
# для оптимизации делаем цикл с шагом 434343 с числа кратного 434343, таким образом, мы будем проходиться только по кратным 434343 числам
for x in range(10424232,10**8,434343):
n = str(x)
if n[-2] == ’1’ and n[-5] == ’1’: # проверка по условию
print(x,x//434343)