Python Program to Check Armstrong (Narcissistic) Number

This python programs check whether a given positive integer number is Armstrong number or not. Armstrong number is also known as Narcissistic number.

A number is said to be Armstrong or Narcissistic Number if it is equal to the sum of its own digits raised to the power of the number of digits in a given number.

Armstrong Numbers Example, number 371 is Armstrong number because: 33 + 73 + 13 = 371

Similary, 8208 is also Armstrong number i.e. 84+24+04+24 = 8208

Single digits number 1 to 9 are also Armstrong numbers.

List of Armstrong Numbers: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407, 1634, 8208, 9474, 54748, 92727, 93084, 548834, 1741725, 4210818, 9800817, 9926315, 24678050, 24678051, 88593477, 146511208, 472335975, 534494836, 912985153, 4679307774, ...

Try: Check Armstrong Number Online & Generate Armstrong Numbers Online

Python Source Code: Check Armstrong or Narcissistic


# Python program to check Armstrong

# Function to count digit in number
def count_digit(n):
    count = 0
    while n:
        n //= 10
        count += 1
    return count

# Function to check Armstrong
def check_armstrong(n):
    number_copy = n
    arm_sum = 0
    digit = count_digit(n)
    while n:
        remainder = n%10
        arm_sum += remainder**digit
        n //= 10

    return arm_sum == number_copy

# Reading number
number = int(input('Enter number: '))

# Making decision
if check_armstrong(number):
    print('%d is ARMSTRONG.' %(number))
else:
    print('%d is NOT ARMSTRONG.' %(number))

Check Armstrong Python Output

Run 1:
--------------
Enter number: 8208
8208 is ARMSTRONG.

Run 2:
--------------
Enter number: 1328
1328 is NOT ARMSTRONG.