Проверка, является ли число счастливым
Напишите функцию на Kotlin или Java, которая проверяет, является ли данное число "счастливым". Счастливое число определяется следующим образом:
Вход: 19
Выход: true
Объяснение:
Вход: 2
Выход: false
Объяснение: В конечном итоге будет зацикливаться, не достигая 1.
fun isHappy(n: Int): Boolean {
var number = n
val seen = mutableSetOf<Int>()
while (number != 1 && number !in seen) {
seen.add(number)
number = getSumOfSquares(number)
}
return number == 1
}
private fun getSumOfSquares(n: Int): Int {
var sum = 0
var number = n
while (number > 0) {
val digit = number % 10
sum += digit * digit
number /= 10
}
return sum
}