1- print ("🔢 Armstrong Number Checker 🔢" )
2- print ("An Armstrong number equals the sum of its digits raised to the power of number of digits" )
3- print ("Example: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153\n " )
1+ class ArmstrongChecker :
2+
3+ def __init__ (self , num ):
4+ self .num = num
5+ self .original_num = num
6+ self .num_digits = len (str (num ))
7+ self .total = 0
8+
9+ def calculate (self ):
10+ temp = self .num
411
5- try :
6- num = int (input ("➡️ Enter a number to check: " ))
7-
8- if num < 0 :
9- print ("❌ Please enter a positive number!" )
10- else :
11- original_num = num
12-
13- num_digits = len (str (num ))
14-
15- total = 0
16- temp = num
17-
1812 while temp > 0 :
1913 digit = temp % 10
20- total += digit ** num_digits
14+ self . total += digit ** self . num_digits
2115 temp //= 10
22-
23- print (f"\n 📊 Number: { original_num } " )
24- print (f"📐 Number of digits: { num_digits } " )
25-
26- print (f"\n 🔍 Calculation:" )
27- temp = original_num
16+
17+ def show_calculation (self ):
18+ temp = self .original_num
2819 digits = []
20+
2921 while temp > 0 :
3022 digits .append (temp % 10 )
3123 temp //= 10
24+
3225 digits .reverse ()
33-
34- calculation_parts = [f"{ d } ^{ num_digits } " for d in digits ]
26+
27+ calculation_parts = [f"{ d } ^{ self . num_digits } " for d in digits ]
3528 print (f" { ' + ' .join (calculation_parts )} " )
36-
37- values = [f"{ d ** num_digits } " for d in digits ]
29+
30+ values = [f"{ d ** self . num_digits } " for d in digits ]
3831 print (f" = { ' + ' .join (values )} " )
39- print (f" = { total } " )
40-
41- if total == original_num :
42- print (f"\n ✅ { original_num } is an Armstrong Number! 🎉" )
32+ print (f" = { self .total } " )
33+
34+ def check (self ):
35+ self .calculate ()
36+
37+ print (f"\n 📊 Number: { self .original_num } " )
38+ print (f"📐 Number of digits: { self .num_digits } " )
39+
40+ print (f"\n 🔍 Calculation:" )
41+ self .show_calculation ()
42+
43+ if self .total == self .original_num :
44+ print (f"\n ✅ { self .original_num } is an Armstrong Number! 🎉" )
4345 else :
44- print (f"\n ❌ { original_num } is NOT an Armstrong Number." )
45-
46- print ("\n 💡 Some Armstrong Numbers:" )
47- print (" 1-digit: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9" )
48- print (" 3-digit: 153, 370, 371, 407" )
49- print (" 4-digit: 1634, 8208, 9474" )
46+ print (f"\n ❌ { self .original_num } is NOT an Armstrong Number." )
47+
48+
49+ print ("🔢 Armstrong Number Checker 🔢" )
50+ print ("An Armstrong number equals the sum of its digits raised to the power of number of digits" )
51+ print ("Example: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153\n " )
52+
53+ try :
54+ num = int (input ("➡️ Enter a number to check: " ))
55+
56+ if num < 0 :
57+ print ("❌ Please enter a positive number!" )
58+ else :
59+ checker = ArmstrongChecker (num )
60+ checker .check ()
5061
5162except ValueError :
5263 print ("❌ Invalid input! Please enter a valid number." )
0 commit comments