Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Среди натуральных чисел, не превышающих , найдите все числа, соответствующие маске
?
? и делящиеся на
без остатка. В ответе запишите количество найденных чисел
Решение через циклы
ans = 0
for x in range(10):
for i in [0, 5]:
#любое число, оканчивающееся на 0 или 5, делится на 5
ans += 1
print(ans)
Решение через срезы
count = 0
for x in range(803210,10**6+1,5): # для оптимизации делаем цикл с шагом 5 с числа кратного 5, таким образом, мы будем проходиться только по кратным 5 числам
n = str(x)
if n[0] == ’8’ and ’321’ in n[2:5]: # проверка, что число удовлетворяет маске
count += 1
print(count)