func sqr(x int) int { return x * x } func isHappy(n int) bool { occur := make(map[int]struct{}) for { if _, ok := occur[n]; ok { return false } else if n == 1 { return true } occur[n] = struct{}{} var next int for next = 0; n != 0; n /= 10 { next += sqr(n % 10) } n = next } return false }