Armstrong Numbers in Python
An Armstrong number (or Narcissistic number) is a number that is equal to the sum of its own digits each raised to the power of the number of digits. For example, .
Armstrong numbers less than 1000 are: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407.
The following code checks whether a user-input number is an Armstrong number:
Example
# Filename: test.py # Author: www.runoob.com # Python code to check if the user-input number is an Armstrong number # Get user input num = int(input("Enter a number: ")) # Initialize sum sum = 0 # Number of digits n = len(str(num)) # Check if it is an Armstrong number temp = num while temp > 0: digit = temp % 10 sum += digit ** n temp //= 10 # Output result if num == sum: print(f"{num} is an Armstrong number") else: print(f"{num} is not an Armstrong number")
Example Output:
$ python3 test.py Enter a number: 345 345 is not an Armstrong number $ python3 test.py Enter a number: 153 153 is an Armstrong number $ python3 test.py Enter a number: 1634 1634 is an Armstrong number
To find Armstrong numbers within a specific range, you can use the following code:
Example
# Filename: test.py # Author: www.runoob.com # Get user input lower = int(input("Enter the minimum value: ")) upper = int(input("Enter the maximum value: ")) for num in range(lower, upper + 1): # Initialize sum sum = 0 # Number of digits n = len(str(num)) # Check if it is an Armstrong number temp = num while temp > 0: digit = temp % 10 sum += digit ** n temp //= 10 if num == sum: print(num)
Example Output:
Enter the minimum value: 1 Enter the maximum value: 10000 1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474
In this example, the program prints Armstrong numbers between 1 and 10000.