Составление программы на языке Python - Компьютерные вопросы

Вопрос Составление программы на языке Python

Регистрация
28 Июл 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Напишите программу:
Натуральное число называется числом Армстронга, если сумма цифр числа, возведенных в N-ную степень (где N – количество цифр в числе) равна самому числу. Например, 153 = 1^3 + 5^3 + 3^3. Найдите все трёхзначные числа Армстронга.
Никак не могу разобраться. Буду благодарен за помощь!
 
Регистрация
13 Сен 2012
Сообщения
91
Репутация
0
Спасибо
0
Монет
0
Пожалуйста имейте ввиду, что этот пользователь забанен
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)
 
Регистрация
21 Сен 2013
Сообщения
88
Репутация
-1
Спасибо
0
Монет
0
-"Напишите программу:" print([y for y in [str(x) for x in range(100,10000000)] if sum([int(y[z])**len(y) for z in range(len(y))]) == int(y)]) -"Никак не могу разобраться. Буду благодарен за помощь!" Перебираешь числа, если число соответствует условию, то добавляешь его в список. Что непонятно?
 
Регистрация
27 Июн 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
Я про эти числа Армстронга сам узнал только прошлым летом, но с задачей по их нахождению справился минут за 10, если не меньше
29033696_ae64a64bab77e8427693ef680537fd61_800.png
 
Регистрация
27 Сен 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
нужно решение, а не знания ( как вариант ans=[] for x in range(100,10000000): kv=0 for y in str(x): kv+=int(y)**len(str(x)) if x==kv: ans.append(x) print(ans)
 
Сверху Снизу