Menu
CoddyTech

Happy Number

Comece com um inteiro positivo n e substitua-o pela soma dos quadrados de seus dígitos, repetidamente. Por exemplo, 12 se torna 1² + 2² = 5. Se esse processo chegar a 1, n é um número feliz; caso contrário, ele entra em um ciclo infinito de números que nunca incluem 1. Retorne true se n for feliz e false se não for.

Função

isHappy(n: integer) → boolean
ninteger
o número inteiro positivo a ser testado
Retornaboolean
verdadeiro se a repetição da soma dos quadrados dos dígitos chegar a 1, falso se entrar em um loop infinito

Restrições

  • 1 ≤ n ≤ 231-1

Exemplos

Entrada
n = 7
Saída
true
Explicação
7 se torna 49, depois 4² + 9² = 97, depois 130, depois 10 e, então, 1. O processo chega a 1, então 7 é feliz.

lock icon+16 testes ocultos ao enviar

challenge icon

Para ir além

Como você contaria rapidamente os números felizes de 1 a 10^6, reutilizando as respostas para números abaixo de 1000 em vez de percorrer cada número inicial do zero?

Redefinir código
def isHappy(n):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

n = 7

Esperado

true