Šť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
- Zapište n.
- Nahraďte jej součtem čtverců jeho číslic.
- Zkontrolujte: je to 1 (šťastné) nebo opakování (nešťastné)?
- 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)