Finding and Checking Armstrong Numbers with Easy Python Code

Advertisement

Apr 27, 2025 By Alison Perry

Numbers are more than just digits. Sometimes, they hide clever little tricks that feel almost magical once you spot them. Armstrong numbers are one of those surprises. You may have heard about them before, or maybe you're hearing the term for the first time — either way, once you understand how they work, you'll start noticing them more often. They are rare, interesting, and fun to figure out once you know the simple logic behind them. The good news is that checking for Armstrong numbers in Python is easier than you might think. You don't need to be a programming expert. Let's first break it down simply, and then I'll walk you through writing your own Python code to find these numbers!

What Exactly Is an Armstrong Number?

Here’s the simplest way to think about it: An Armstrong number is a number that’s equal to the sum of its own digits, each raised to the power of the number of digits.

Sounds like a mouthful, right? Let’s make it clear with a few examples:

  • 153 is an Armstrong number. Why?
  • 13+53+33=1+125+27=1531^3 + 5^3 + 3^3 = 1 + 125 + 27 = 15313+53+33=1+125+27=153
  • The number has three digits, so each digit gets raised to the third power.
  • 9474 is another Armstrong number.
  • 94+44+74+44=6561+256+2401+256=94749^4 + 4^4 + 7^4 + 4^4 = 6561 + 256 + 2401 + 256 = 947494+44+74+44=6561+256+2401+256=9474
  • Four digits? Each digit goes to the fourth power.

When the sum you get matches the original number, you’re looking at an Armstrong number.

They’re special because they don’t happen often, especially as numbers get bigger. It’s like finding a tiny rare gem hidden inside thousands of rocks.

How to Check for an Armstrong Number in Python

Now that you know what it means, let’s build a simple Python program that checks if a number is an Armstrong number. Don’t worry if you're not a pro coder; this is all beginner-friendly.

Here's the basic idea:

  1. Take the input number.
  2. Find the total number of digits.
  3. Split the number into digits.
  4. Raise each digit to the power of the number of digits.
  5. Add them all up.
  6. Compare the sum with the original number.

If they match, congratulations—you found an Armstrong number!

Here’s a simple Python code snippet to do that:

python

CopyEdit

# Python program to check if a number is an Armstrong number

# Taking input from the user

num = int(input("Enter a number: "))

# Find the number of digits

order = len(str(num))

# Initialize sum

sum = 0

# Make a copy of the original number

temp = num

while temp > 0:

digit = temp % 10

sum += digit ** order

temp //= 10

# Display the result

if num == sum:

print(f"{num} is an Armstrong number.")

else:

print(f"{num} is not an Armstrong number.")

When you run this code, it will ask for a number and tell you if it’s an Armstrong number. Simple, clean, and easy to follow.

Finding Armstrong Numbers in a Range

Why stop at checking just one number? What if you want to find all the Armstrong numbers between 1 and 1000? Python makes that smooth, too.

The logic stays the same, but now you’ll loop through a range of numbers instead of checking just one. Here’s how you can do it:

python

CopyEdit

# Python program to find Armstrong numbers in a given range

# Define the range

lower = 1

upper = 1000

print(f"Armstrong numbers between {lower} and {upper} are:")

for num in range(lower, upper + 1):

order = len(str(num))

sum = 0

temp = num

while temp > 0:

digit = temp % 10

sum += digit ** order

temp //= 10

if num == sum:

print(num)

This code will find and print all the Armstrong numbers from 1 to 1000. You’ll spot familiar ones like 153, 370, 371, and 407 showing up. It’s always fun to see the program spitting out these little mathematical oddities!

Making It Into a Python Function

If you’re coding something bigger and want to re-use the Armstrong number check multiple times, it’s a good idea to wrap the code inside a function. Functions are blocks of code that you can use again and again without rewriting the same lines.

Here’s how you can turn the Armstrong checker into a function:

python

CopyEdit

# Function to check if a number is an Armstrong number

def is_armstrong(number):

order = len(str(number))

sum = 0

temp = number

while temp > 0:

digit = temp % 10

sum += digit ** order

temp //= 10

return number == sum

# Example usage

n = int(input("Enter a number: "))

if is_armstrong(n):

print(f"{n} is an Armstrong number.")

else:

print(f"{n} is not an Armstrong number.")

Now, every time you want to check a number, you just call is_armstrong(number). Clean code means less chance of mistakes, and your program looks smarter, too.

And if you want to find Armstrong numbers in a range using this function, here’s a quick way:

python

CopyEdit

for i in range(1, 1001):

if is_armstrong(i):

print(i)

That’s the beauty of functions—they save time and make everything simpler.

Wrapping It Up

Armstrong numbers might seem like they're just a math trick, but they teach you a lot about how numbers work when you break them apart. Plus, coding them in Python is a solid exercise that uses loops, conditionals, and functions all in one go.

Whether you're a beginner practicing Python or someone brushing up your skills, writing a program to find Armstrong numbers is a fun little project that gives you instant feedback. Try tweaking the code, expanding the range, or even timing how fast Python finds the numbers. Once you see how neatly everything fits together, you'll realize coding isn't about memorizing; it's about understanding little puzzles like this one. Happy coding!

Advertisement

Recommended Updates

Technologies

Finding and Checking Armstrong Numbers with Easy Python Code

By Alison Perry / Apr 27, 2025

Ever spotted numbers that seem special? Learn how Armstrong numbers work and see how easy it is to find them using simple Python code

Technologies

Mastering ROW_NUMBER() in SQL: Numbering, Pagination, and Cleaner Queries Made Simple

By Alison Perry / Apr 26, 2025

Learn how ROW_NUMBER() in SQL can help you organize, paginate, and clean your data easily. Master ranking rows with practical examples and simple tricks

Technologies

Understanding the Differences Between ANN, CNN, and RNN Models

By Alison Perry / Apr 28, 2025

Understanding the strengths of ANN, CNN, and RNN can help you design smarter AI solutions. See how each neural network handles data in its own unique way

Applications

Setting Up Gemma-7b-it with vLLM for Better Performance

By Tessa Rodriguez / Apr 24, 2025

Wondering how to run large language models without killing your machine? See how vLLM helps you handle Gemma-7b-it faster and smarter with less memory drain

Applications

7 New Canva Features That Make Creating Even Easier

By Tessa Rodriguez / Apr 28, 2025

Looking for ways to make designing easier and faster with Canva? Their latest updates bring smarter tools, quicker options, and fresh features that actually make a difference

Technologies

Using SQL INTERSECT to Find Matches Across Queries

By Tessa Rodriguez / Apr 23, 2025

Looking for an easy way to find common results in two queries? Learn how SQL INTERSECT returns only shared data without extra work or confusion

Technologies

Understanding HashMaps in Python for Faster Data Management

By Tessa Rodriguez / Apr 27, 2025

Ever wondered how Python makes data lookups so fast? Learn how HashMaps (dictionaries) work, and see how they simplify storing and managing information

Applications

4 Quick Ways to Solve AttributeError in Pandas

By Alison Perry / Apr 26, 2025

Struggling with AttributeError in Pandas? Here are 4 quick and easy fixes to help you spot the problem and get your code back on track

Applications

Why Arc Search’s ‘Call Arc’ Is Changing Everyday Searching

By Alison Perry / Apr 28, 2025

Feeling tired of typing out searches? Discover how Arc Search’s ‘Call Arc’ lets you speak your questions and get instant, clear answers without the hassle

Applications

Matthew Honnibal’s Quiet Revolution: How Practical AI and SpaCy are Shaping the Future

By Tessa Rodriguez / Apr 26, 2025

Discover how Matthew Honnibal reshaped natural language processing with SpaCy, promoting practical, human-centered AI that's built for real-world use

Technologies

Understanding Generative Models and Their Everyday Impact

By Alison Perry / Apr 27, 2025

Wondering how apps create art, music, or text automatically? See how generative models learn patterns and build new content from what they know

Technologies

How Python Makes Text Mining Easy for Beginners

By Tessa Rodriguez / Apr 27, 2025

Curious how companies dig insights out of words? Learn how to start text mining with Python and find hidden patterns without feeling overwhelmed