Menu
CoddyTech

Happy Number

Zacznij od dodatniej liczby całkowitej n i wielokrotnie zastępuj ją sumą kwadratów jej cyfr. Na przykład 12 staje się 1² + 2² = 5. Jeśli w tym procesie otrzymasz 1, n jest szczęśliwą liczbą; w przeciwnym razie liczby będą krążyć w nieskończoność, nigdy nie obejmując 1. Zwróć true, jeśli n jest szczęśliwą liczbą, a false, jeśli nie jest.

Funkcja

isHappy(n: integer) → boolean
ninteger
liczba całkowita dodatnia do sprawdzenia
Zwracaboolean
true, jeśli powtarzanie sumowania kwadratów cyfr prowadzi do 1, false, jeśli powtarza się w nieskończoność

Ograniczenia

  • 1 ≤ n ≤ 231-1

Przykłady

Wejście
n = 7
Wyjście
true
Wyjaśnienie
7 staje się 49, potem 4² + 9² = 97, następnie 130, potem 10, a na końcu 1. Proces osiąga 1, więc 7 jest szczęśliwa.

lock icon+16 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Jak szybko policzyć liczby szczęśliwe od 1 do 10^6, ponownie wykorzystując wyniki dla liczb mniejszych niż 1000, zamiast za każdym razem zaczynać od początku?

Zresetuj kod
def isHappy(n):
    # Napisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

n = 7

Oczekiwane

true