Введём новую операцию «зачёркивание» —— удаление из числа любой одной цифры так, чтобы оставшиеся в числе цифры соединились, образовав новое число, не начинающееся с 0. Например, из числа 102 одной такой операцией можно получить числа 123, 103 и 102.
Никита применил не более двух операций зачёркивания к числу 743454765 и получил в результате число, делящееся на 36. Сколько различных чисел мог получить Никита
python
def check_divisible(n):
# Функция для проверки деления числа на 36
return n % 36 == 0
def count_numbers(n):
count = 0
digits = list(str(n)) # Преобразуем число в строку и разделяем его на отдельные цифры
n_digits = len(digits)
# Перебираем все возможные варианты зачеркивания числа
for i in range(2 ** n_digits):
# Преобразуем номер комбинации в двоичную запись
combination = bin(i)[2:].zfill(n_digits)
# Зачеркиваем цифры согласно комбинации
new_number = ''.join([digits[j] for j in range(n_digits) if combination[j] == '1'])
# Проверяем, является ли полученное число подходящим
if new_number != '' and not new_number.startswith('0') and check_divisible(int(new_number)):
count += 1
return count
number = 743454765
result = count_numbers(number)
print(result)
При выполнении данного кода мы получим число различных чисел, которые можно получить в результате применения не более двух операций зачеркивания к числу 743454765 и делящиеся на 36.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет