Skip to content

Commit c5dea06

Browse files
committed
Merge upstream/main: resolve conflicts in web-app; preserve snake, typing tester, search, and RPS features
2 parents 63e638b + b83f71f commit c5dea06

6 files changed

Lines changed: 1376 additions & 711 deletions

File tree

Lines changed: 55 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,56 @@
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+
154
print("🔢 Armstrong Number Checker 🔢")
255
print("An Armstrong number equals the sum of its digits raised to the power of number of digits")
356
print("Example: 153 = 1³ + 5³ + 3³ = 1 + 125 + 27 = 153\n")
@@ -12,43 +65,5 @@
1265
if num < 0:
1366
print("❌ Please enter a positive number!")
1467
else:
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

Comments
 (0)