while ( ehto ) lauseMuutamme samalla algoritmia siten, että 2:lla jaolliset käsitellään erikoistapauksena. Näin pääsemme eroon "inhottavasta" kasvatus- muuttujasta.
int pienin_jakaja(int luku) { int jakaja=3; if ( luku < 0 ) luku = - luku; if ( luku == 2 ) return 1; if ( (luku % 2) == 0 ) return 2; while ( jakaja < luku /2 ) { if ( (luku % jakaja) == 0 ) return jakaja; jakaja += 2; } return 1; }