Aparentemente o fecho esta fechando ... (vide description)

Uma pequena melhora no fecho, a condição de quebra do while funciona,
entretanto com conceito diferente.

Lembrar: rever literatura (condição de quebra), performance (mei ruim)
e testar com uma entrada melhor