Armstrong Number in Python Using Function

In this blog, we will learn to check Armstrong numbers in Python using function. Our program uses functions and logical operations to determine if a number qualifies as an Armstrong number. Additionally, we will provide a step-by-step explanation of the program’s logic, empowering you to understand and modify the code to suit your needs.

In number theory, the Armstrong numbers hold a special place and are also known as Narcissistic numbers. These intriguing numerical entities possess a fascinating property, the sum of their digits, each raised to the power of the number of digits, equals the original number itself. 

By the end of this blog, you will not only have a deeper understanding of Armstrong numbers but also gain insights into recursion, mathematical functions, and the power of logic programming. So, let’s write a Python program to check the Armstrong number using a function.

Python Program to Check Armstrong Number Using Function

# Check Armstrong Number in Python Using Function

# import python math library
from math import *

# get input from user
num = int(input("Enter the number : "))

# get input number length
n = len(str(num))
temp = num

result = 0
while (temp != 0):
    # logic to calculate armstrong number
    remainder = temp % 10
    result = result + pow(remainder, n)
    temp = int(temp/10)

# display output
if (result == num):
    print("The number is an Armstrong number")
else:
    print("The number is not an Armstrong number")

Code Logic and Explanation

  • Importing the math library

We begin by importing the math module to use the pow() function, which calculates the power of a number.

  • Getting input from the user

Next, we prompt the user to enter a number and store it in the variable num.

  • Determining the number length

We find the length of the input number by converting it to a string using str(num) and then using the len() function to get the number of digits. The value of this length is stored in the variable n.

  • Initializing variables

In this step, we create a temporary variable temp and set it equal to the input number num. The result variable is then initialised to 0, which will store the sum of the digits raised to the power of n.

  • Calculating the Armstrong number

We enter a while loop that continues until temp becomes 0. Inside every iteration of the loop, the code extracts the rightmost digit of temp using the modulus operator % and stores it in the variable remainder. Next, the remainder is raised to the power of n using the pow() function, and added to the result. The rightmost digit is removed using integer division.

  • Displaying the output

After the loop ends, we compare the result with the original input num. If they are equal, we print “The number is an Armstrong number“. If they are not equal, we print “The number is not an Armstrong number“.

Output:

Enter the number : 153
The number is an Armstrong number
Enter the number : 155
The number is not an Armstrong number

This Python program checks whether a given number is an Armstrong number or not. An Armstrong number is a number that is equal to the sum of its own digits raised to the power of the number of digits.

The program accepts input from the user and calculates the length of the number using the len() function. It then uses a while loop to calculate the sum of the digits of the number raised to the power of the number of digits using the pow() function. Finally, it checks if the sum is equal to the original number. If the sum is equal to the original number, the program prints “The number is an Armstrong number”. Otherwise, it prints “The number is not an Armstrong number”.

Alternate methods of checking Armstrong numbers in Python are:

  • Using a for loop instead of a while loop: This approach can provide a more concise and readable code structure. 
  • Using a recursive function: This approach can be useful if you prefer a recursive solution or want to explore different coding techniques. 
  • Using list comprehension: This approach can provide a compact and elegant solution using lists. 
  • Using generators: This approach can be beneficial if you’re working with large numbers and want to optimize memory usage.

The code we implemented uses a while loop and simple arithmetic operations which is a straightforward and commonly used approach to check Armstrong numbers. It is easy to understand, implement, and debug. Therefore, it can be a suitable choice for most scenarios where simplicity and clarity are important.

In this tutorial, we wrote a program in Python to determine whether a given number is an Armstrong number or not. By importing the math library and using the power function, we can easily calculate the sum of the cubes of each digit in the input number. Our code also uses a while loop to perform this calculation and then uses an if-else statement to determine the final output.

This concept can also be used in complex applications, especially where Armstrong numbers are a key component. Overall, this tutorial serves as an example of how to apply mathematical concepts and functions in Python programming.

FAQs – Armstrong Number in Python Using Function

What is an Armstrong number?

An Armstrong number is a number whose sum of its individual digits raised to the power of the number of digits in the number is equal to the number itself. For example, 153 is an Armstrong number because 1^3 + 5^3 + 3^3 = 153.

What is the purpose of the len() function in this program?

The len() function is used to calculate the number of digits in the input number.

What is the purpose of the temp variable in this program?

The temp variable is used to store a copy of the input number so that it can be manipulated without affecting the original input.

About The Author

Leave a Reply