Šťastné číslo — stopa

O(log n) per step

Šťastné číslo nakonec dospěje k 1, pokud je opakovaně nahrazujeme součtem čtverců jeho číslic. Čísla, která šťastná nejsou, vždy skončí v cyklu 4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4. Přibližně 14,3 % kladných celých čísel je šťastných. Vizualizér sleduje každý krok náhrady a výslednou hodnotu označí zeleně, pokud dojdeme k 1, nebo zvýrazní opakující se hodnotu při detekci cyklu.

Posloupnost
Stiskni ▶ a spusť
Uprav vstup a stiskni Přehrát

Jak to funguje

  1. Zapište n.
  2. Nahraďte jej součtem čtverců jeho číslic.
  3. Zkontrolujte: je to 1 (šťastné) nebo opakování (nešťastné)?
  4. Pokračujte, dokud nenastane jedna z podmínek.

Pseudokód

1happyTrace(n):                      # O(log n) per step2  seen ← {n}3  while n ≠ 1:4    n ← Σ(digit² for digit in n)5    emit n6    if n in seen: break   # unhappy cycle7    seen.add(n)8  happy ← (n == 1)