Armstrong numbers between two intervals
Write a program to print all the Armstrong numbers in the given range
A to B(including A and B). An N-digit number is an Armstrong number if the number equals the sum of the Nth power of its digits.
Input
The first line has an integer
A. The second line has an integer B.
Output
Print all Armstrong numbers separated by a space.
If there are no Armstrong numbers in the given range, print
-1.
Explanation
For
A = 150 and B = 200
For example, if we take number 153, the sum of the cube of digits
1, 5, 3 is
13 + 53 + 33 = 153.
So, the output should be
153.
Sample Input 1
150
200
Sample Output 1
153
Sample Input 2
1
3
Sample Output 2
1 2 3
important: please tell me how can we print -1 if there is no armstrong number
def findArmstrong(A, B):
nums = []
for n in range(A,B+1):
str_num = str(n)
l = len(str_num)
s = 0
for i in range(l):
s += int(str_num[i])**l
if s == n:
nums.append(s)
if nums:
# if the list contains Armstrong numbers
# then print these numbers
print(*nums, sep="\n")
else:
# if the list is empty then print -1
print(-1)
A = int(input())
B = int(input())
findArmstrong(A, B)
Comments
Leave a comment