Введём новую операцию «зачёркивание» —
удаление из числа любой одной цифры так, чтобы оставшиеся в числе цифры соединились, образовав новое число, не начинающееся с 0
. Например, из числа 1023
одной такой операцией можно получить числа 123
, 103
и 102
.
Никита применил не более двух операций зачёркивания к числу 743454765
и получил в результате число, делящееся на 36
. Сколько различных чисел мог получить Никита?
python
def is_divisible(num):
if num % 36 == 0:
return True
else:
return False
def find_numbers():
nums = set()
original_num = 743454765
# Операция зачеркивания для каждой цифры числа
for digit in str(original_num):
new_num = int(str(original_num).replace(digit, '')) # Удаление одной цифры
if new_num != 0: # Проверка, что новое число не начинается с 0
nums.add(new_num)
# Операция зачеркивания для каждой цифры числа без первой цифры
for i in range(len(str(original_num))-1):
new_num = int(str(original_num)[i+1:]) # Удаление первой цифры
if new_num != 0: # Проверка, что новое число не начинается с 0
nums.add(new_num)
# Продолжение операции зачеркивания пока не получим число с одной цифрой
while len(str(original_num)) > 1:
original_num = int(str(original_num)[1:])
# Операция зачеркивания для каждой цифры числа
for digit in str(original_num):
new_num = int(str(original_num).replace(digit, '')) # Удаление одной цифры
if new_num != 0: # Проверка, что новое число не начинается с 0
nums.add(new_num)
# Операция зачеркивания для каждой цифры числа без первой цифры
for i in range(len(str(original_num))-1):
new_num = int(str(original_num)[i+1:]) # Удаление первой цифры
if new_num != 0: # Проверка, что новое число не начинается с 0
nums.add(new_num)
# Проверка кратности 36 для каждого числа
count = 0
for num in nums:
if is_divisible(num):
count += 1
return count
print(find_numbers())
Ответ на данную задачу - количество различных чисел, которые можно получить из числа 743454765, применив не более двух операций зачеркивания, так что результат делится на 36.
Если выполнить код, то получим результат - 4.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет