Divisori primi di un numero
C'è qualcuno che riesce a spiegarmi perchè il seguente algoritmo in pseudolinguaggio riesce a stampare i divisori primi di un numero? Non ho capito il funzionamento di questo algoritmo
Inizio
Ripeti
leggi n;
finchè n>=4;
d=2;
fintantochè n<>1 esegui inizio
se n mod d = 0 allora inizio
scrivi d;
ripeti
n= n div d;
finchè n mod d<>0;
fine
d=d+1;
fine
fine
Inizio
Ripeti
leggi n;
finchè n>=4;
d=2;
fintantochè n<>1 esegui inizio
se n mod d = 0 allora inizio
scrivi d;
ripeti
n= n div d;
finchè n mod d<>0;
fine
d=d+1;
fine
fine
Risposte
Forse, con qualche commento, l'algoritmo risulta più comprensibile. 

Inizio Ripeti 'acquisisce n >= 4 leggi n; finchè n>=4; d=2; 'inizializza il possibile divisore a 2 fintantochè n<>1 esegui inizio 'deve continuare solo se n è ancora >1 se n mod d = 0 allora inizio 'se d è un divisore di n scrivi d; 'stampa d ripeti 'continua a dividere n per lo stesso divisore d n= n div d; 'senza stampare d nuovamente finchè n mod d<>0; 'fino a quando n non risulta più divisibile per d fine d=d+1; 'passa all'eventuale divisore successivo fine 'n si è ridotto a 1 fine