Python Armstrong Number Checker

Verify if a number is an Armstrong (narcissistic) number where the sum of its own digits raised to the power of the number of digits equals the number itself.

Try Python Armstrong Number Checker Code

How it Works

An Armstrong number (also known as a narcissistic or pluperfect digital invariant number) is an n-digit number that is equal to the sum of the nth powers of its digits.

For example, 153 is a 3-digit Armstrong number because 1^3 + 5^3 + 3^3 = 153. Similarly, 9474 is a 4-digit Armstrong number because 9^4 + 4^4 + 7^4 + 4^4 = 9474.

We implement this in Python by converting the integer to a string to easily count the number of digits and iterate through each digit.

Source Code

Check a series of numbers to determine if they meet the mathematical criteria for Armstrong numbers.

armstrong.py
Try in Editor
def is_armstrong(num):
    num_str = str(num)
    n = len(num_str)
    digit_sum = sum(int(digit) ** n for digit in num_str)
    return digit_sum == num

test_nums = [153, 370, 9474, 123]
for val in test_nums:
    result = "Armstrong" if is_armstrong(val) else "Not Armstrong"
    print(f"{val:4d} -> {result}")
Terminal Output
 153 -> Armstrong
 370 -> Armstrong
9474 -> Armstrong
 123 -> Not Armstrong

Real-world Applications

  • Number theory research and logic exercises
  • Classroom math programming assignments
  • Recreational programming

Frequently Asked Questions

Are all single-digit numbers Armstrong numbers?

Yes. Any single digit raised to the power of 1 is equal to itself (e.g., 5^1 = 5).

More Examples