Die Division einmalig auszurechnen bringt auch imo nicht viel. Soweit ich das sehe liegt die Schnecke einfach im Algorithmus begraben.
Nachdem du in beiden Prozeduren rekursive for-schleifen hast dürfte die Komplexität bei ca. n² liegen, was sich bei längeren Werten/häufigeren Schleifendurchläufen schon mal stark auf die Geschwindigkeit auswirkt.
Ergo: Du kannst die Prozeduren beschleunigen, indem du den Algorithmus schon auf den Papier optimierst
(btw: es wäre logischer, die repeat-until-schleifen durch for-schleifen zu ersetzen. Logisch dann nicht i5 / 32 sondern i5 div 32 oder i5 shr 5 nehmen )
greetz
Mike