Solución
solution.tsTypeScript
function isHappyNumber(n: number): boolean {
let currentNum = n
const seenNum = new Set<number>()
// Split the number into digits, square each digit, and sum them
// Store previously seen numbers in a Set to detect cycles and avoid infinite loops
while (currentNum !== 1 && !seenNum.has(currentNum)) {
seenNum.add(currentNum)
currentNum = currentNum
.toString()
.split('')
.map(Number)
.reduce((prev, curr) => prev + curr**2, 0)
}
return currentNum === 1;
}
// No modificar: necesario para evaluar el resultado.
export { isHappyNumber };0respuestas