Strong Number

A number is called strong number if the number is equal to the sum of factorials of digits of the number.

Example :
Number 145 is a strong number as sum of factorial of 1 , 4 and 5 is equal to 145
145= 1! + 4! + 5!

Python strong number over a range or checking user input number is strong number or not

There are three parts in this script.
  1. Function to get Factorial of a number
  2. Collecting all digits of the number
  3. Finding sum of the factorial of digits and comparing

Function to get Factorial of a number

We will use one function to get the factorial of any input number.
def my_factorial(n):
  b=1
  for i in range(1,n+1):
    b=b*i
  return b

Digits of an input number

We can get length of a string by using len()
a=input("Enter a number")
for i in range(0,len(a)):
  print(a[i])

Finding sum of the factorials of digit and comparing

Using the factorial function created ( my_factorial() ), the Sum of the factorials of digits of the number can be calculated.
my_sum=my_sum+my_factorial(int(a[i]))
Above line is kept inside the for loop. So on each step of the loop one digit of the number is used ( from left to right ).
This value of my_sum can be compared with the input number by using if condition check and accordingly message can be displayed saying about the strong number.

Full code to check input number is strong number or not

def my_factorial(n):
  b=1
  for i in range(1,n+1):
    b=b*i
  return b
  
a=input("Ener a number : ")
my_sum=0
for i in range(0,len(a)):
  my_sum=my_sum+my_factorial(int(a[i]))
print("Sum of factorial of digits : ",my_sum)
if int(a)==my_sum:
  print('This is a strong number : ', a)
else:
  print('This is not a strong number', a)

Listing all strong numbers over a range

We can modify the above code to check all the numbers over a range and display the strong numbers.
def my_factorial(n):
  b=1
  for i in range(1,n+1):
    b=b*i
  return b
  
for a in range(10,100000): # change this range 
  my_sum=0
  a1=str(a)
  for i in range(0,len(a1)):
    my_sum=my_sum+my_factorial(int(a1[i]))
  if a==my_sum:
    print('This is a strong number : ', a)
Output
This is a strong number :  145
This is a strong number :  40585

All Sample codes Armstrong Number Number equal to cube of its Digits

Podcast on Python Basics


Author Image
Subhendu Mohapatra

AUTHOR

🎥 Join me live on YouTube

Passionate about coding and teaching, I love sharing practical programming tutorials on PHP, Python, JavaScript, SQL, and web development. With years of experience, my goal is to make learning simple, engaging, and project-oriented. Whether you're a beginner or an experienced developer, I believe learning by doing is the best way to master coding. Let's explore the world of programming together!

LinkedIn X (Twitter)
Subscribe to our YouTube Channel here



Subscribe to our YouTube Channel here



plus2net.com







Python Video Tutorials
Python SQLite Video Tutorials
Python MySQL Video Tutorials
Python Tkinter Video Tutorials
We use cookies to improve your browsing experience. . Learn more
HTML MySQL PHP JavaScript ASP Photoshop Articles Contact us
©2000-2025   plus2net.com   All rights reserved worldwide Privacy Policy Disclaimer