Answer to Question #297995 in Python for satyasrini

Question #297995

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


1
Expert's answer
2022-02-15T02:27:14-0500
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)

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS