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
11+
12+ while temp > 0 :
13+ digit = temp % 10
14+ self .total += digit ** self .num_digits
15+ temp //= 10
16+
17+ def show_calculation (self ):
18+ temp = self .original_num
19+ digits = []
20+
21+ while temp > 0 :
22+ digits .append (temp % 10 )
23+ temp //= 10
24+
25+ digits .reverse ()
26+
27+ calculation_parts = [f"{ d } ^{ self .num_digits } " for d in digits ]
28+ print (f" { ' + ' .join (calculation_parts )} " )
29+
30+ values = [f"{ d ** self .num_digits } " for d in digits ]
31+ print (f" = { ' + ' .join (values )} " )
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! 🎉" )
45+ else :
46+ print (f"\n ❌ { self .original_num } is NOT an Armstrong Number." )
47+
48+ print ("\n 💡 Some Armstrong Numbers:" )
49+ print (" 1-digit: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9" )
50+ print (" 3-digit: 153, 370, 371, 407" )
51+ print (" 4-digit: 1634, 8208, 9474" )
52+
53+
154print ("🔢 Armstrong Number Checker 🔢" )
255print ("An Armstrong number equals the sum of its digits raised to the power of number of digits" )
356print ("Example: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153\n " )
1265if num < 0 :
1366 print ("❌ Please enter a positive number!" )
1467else :
15- original_num = num
16- num_digits = len (str (num )) if num > 0 else 1
17- total = 0
18- temp = num
19-
20- while temp > 0 :
21- digit = temp % 10
22- total += digit ** num_digits
23- temp //= 10
24-
25- print (f"\n 📊 Number: { original_num } " )
26- print (f"📐 Number of digits: { num_digits } " )
27-
28- print (f"\n 🔍 Calculation:" )
29- temp = original_num
30- digits = []
31- while temp > 0 :
32- digits .append (temp % 10 )
33- temp //= 10
34- digits .reverse ()
35-
36- if num == 0 :
37- digits = [0 ]
38-
39- calculation_parts = [f"{ d } ^{ num_digits } " for d in digits ]
40- print (f" { ' + ' .join (calculation_parts )} " )
41-
42- values = [f"{ d ** num_digits } " for d in digits ]
43- print (f" = { ' + ' .join (values )} " )
44- print (f" = { total } " )
45-
46- if total == original_num or num == 0 :
47- print (f"\n ✅ { original_num } is an Armstrong Number! 🎉" )
48- else :
49- print (f"\n ❌ { original_num } is NOT an Armstrong Number." )
50-
51- print ("\n 💡 Some Armstrong Numbers:" )
52- print (" 1-digit: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9" )
53- print (" 3-digit: 153, 370, 371, 407" )
54- print (" 4-digit: 1634, 8208, 9474" )
68+ checker = ArmstrongChecker (num )
69+ checker .check ()
0 commit comments