Код на Python3, пожалуйста. У меня есть два часа.
На уроках информатики Леша заинтересовался магическими числами. Это такие натуральные числа, сумма цифр которых равна самому числу.
Как-то раз в домашнем задании Леше попалась интересная задача: «Найдите количество магических чисел, меньших или равных N».
Так как Леша увлекается программированием, то он очень хотел бы решить данную задачу с помощью программы, но, к сожалению, ему не хватает на это навыков. Помогите Леше, написав программу, которая находит количество магических чисел, не превышающих N.
Формат входных данных
Первая строка входных данных содержит единственное число N (1⩽N⩽10^9).
Формат результата
Программа должна вывести одно число — количество магических чисел, не превышающих N.
Ответы
Ответ:
print('Enter natural number from 1 to 10^9: ', end='')
N = int(input())
Magic = 0
print(N)
if (N < 1 or N > 10**9):
print('Error imput number')
else:
for x in range(1,(N+1)):
temp = list(str(x))
z = 0
for y in temp:
z += int(y)
if (x==z):
Magic += 1
print('Magics number count: {}'.format(Magic))
![](https://st.uroker.com/files/dea/dea065b7dd6dea954c9ed5f273d2517c.jpg)
input_value = int(input('Enter N: '))
assert 1 <= input_value <= 10 ** 9, 'Bad value in N'
result = 0
for i in range(1, input_value + 1):
local_result = sum([int(r) for r in str(i)])
if local_result == i:
result += 1
print(result)
Только у меня один вопрос: магические числа должны быть только положительными? если да то так. Если что, то изменив это, for i in range(1, input_value + 1): ,ты изменишь от какого числа считаются магические числа.