Tu trzeba trochę poeksperymetować. Zbadaj różne liczby i zobacz jakie wyniki dostaniesz. Przeanalizuj jakie kroki są wykonywane i czy można na tej podstawie coś uprościć.
Nie pamiętam, jak to rozwiązywałem, ale patrząc na mój kod, takie było moje podejście. Nie mam jednego magicznego wzoru, który to policzy.