const squareSum = function (n) {
let sum = 0
while (n > 0) {
sum += (n % 10) * ( n % 10)
n = Math.floor(n / 10)
}
return sum
}
var isHappy = function (n) {
let slow = n
fast = squareSum(n)
while (slow != fast) {
slow = squareSum(slow)
fast = squareSum(fast)
fast = squareSum(fast)
}
return slow == 1
};
func isHappy(n int) bool {
m := make(map[int]bool)
for n != 1 {
m[n] = true
sum := 0
for n != 0 {
sum += (n % 10) * (n % 10)
n /= 10
}
n = sum
if _, ok := m[n]; ok {
return false
}
}
return true
}
var isHappy = function (n) {
let m = new Map()
while (n != 1) {
m.set(n, true)
let sum = 0
while (n != 0) {
sum += (n % 10) * (n % 10)
n = Math.floor(n / 10)
}
n = sum
if (m.has(n)) {
return false
}
}
return true
};