Напишите программу:
Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где N – количество цифр в числе) равна самому числу. Например, 153 = 1^3 + 5^3 + 3^3. Найдите все трёхзначные числа Армстронга.
Никак не могу разобраться. Буду благодарен за помощь!
def arm(number): digits = tuple(map(int, str(number))) len_number = len(digits) return(sum([digit**len_number for digit in digits])) print(*[number for number in range(100, 1000) if arm(number) == number])
Пожалуйста имейте ввиду, что этот пользователь забанен
def arm(num): num_sum = 0 n = len(str(num)) while num: num_sum += (num%10)**n num //= 10 return num_sum for num in range(100,10000): if num == arm(num): print(num)
-"Напишите программу:" print([y for y in [str(x) for x in range(100,10000000)] if sum([int(y[z])**len for z in range(len)]) == int]) -"Никак не могу разобраться. Буду благодарен за помощь!" Перебираешь числа, если число соответствует условию, то добавляешь его в список. Что непонятно?
нужно решение, а не знания ( как вариант ans=[] for x in range(100,10000000): kv=0 for y in str(x): kv+=int**len(str(x)) if x==kv: ans.append(x) print(ans)