Quando N == 3, questa condizione

codice:
N != 3 && N > 5
quale valore booleano assume? Vero o falso?

Cioè se N == 3 la prima condizione è falsa e la seconda pure, e poiché FALSO AND FALSO = FALSO, il do-while si arresta.

Pensa un po' a come la puoi riscrivere per ottenere quello che vuoi tu.