17 lines
406 B
Python
17 lines
406 B
Python
class Solution:
|
|
def isHappy(self, n: int) -> bool:
|
|
seen = {n}
|
|
while True:
|
|
n = self.square_digital_sum(n)
|
|
if n in seen:
|
|
return n == 1
|
|
seen.add(n)
|
|
|
|
@staticmethod
|
|
def square_digital_sum(n: int) -> int:
|
|
total = 0
|
|
while n > 0:
|
|
n, digit = divmod(n, 10)
|
|
total += digit**2
|
|
return total
|