Divisori primi di un numero

ilario991
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

Risposte
lorven
Forse, con qualche commento, l'algoritmo risulta più comprensibile. :wink:

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

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.