Bom Dia.
Acho que com apenas um while não é possível pois depois que você “estourar” o valor do i(o valor do i ser >= 2) o programa não irá voltar a executar o while, apenas se ele estiver dentro de outro bloco de de repetição(while,for, etc…).
Então, eu não estava conseguindo pensar na melhor forma de zerar o i quando chegasse onde queria. Mas valeu pela resposta, funcionou perfeito aqui também!