Найдите сумму всех четырехзначных чисел, сумма цифр каждого из которых равна 20
не могу решить, вот мой код в чем ошибка?
s = 0
for i in(1000,10000):
while i > 0:
a = i%10
s += a
i //= 10
if s == 20:
print(i)
s = 0
Ответы (2 шт):
Автор решения: oleksandrigo
→ Ссылка
Вроде вот так
result = 0
for number in range(1000, 10000):
if sum(map(int, str(number))) == 20:
result += number
print(result)
Автор решения: Vadim.Sharoikin
→ Ссылка
в одну строчку
print(sum(i for i in range(1000, 10000) if sum(map(int, str(i))) == 20))
ну или можете сделать так
def sum_of_digits(num):
sum = 0
while num > 0:
sum += num % 10
num //= 10
return sum
sum_number = 0
for number in range(1000, 10000):
if(sum_of_digits(number)==20):
sum_number += number
print(sum_number)
еще 1 вариант в 1 строку с использованием filter
print(sum(filter(lambda number: sum(map(int,str(number)))==20, range(1000, 10000))))