Divisori

Un numero a divide n se esiste un numero b tale che ab = n. Per esempio 4 divide 12 (4.3 = 12), ma 5 non divide 12. Questo programma fornisce la lista dei divisori di un dato numero n. Come nel caso precedente, c'è la possibilità di scrivere il risultato su file .rtf che si potrà conservare o stampare.
Osserviamo (anche se questo non viene usato nel programma) che i divisori di un numero n si ripartiscono in modo simmetrico rispetto alla radice quadrata di n. Infatti se ab = n e a < b, allora necessariamente a < r e b > r, dove r è la radice quadrata di n. Infatti se a >= r, allora, siccome b > a, ab >= rb > r2 = n: assurdo. Quindi a < r. Nello stesso modo si vede che b > r.
Il numero n è un quadrato se e solo se ha un divisore uguale a r, cioè se e solo se il numero dei suoi divisori è dispari.
Un numero è primo se e solo se ha due divisori: 1 e se stesso.

Il programma funziona così: prendiamo un "contenitore" (Vector) e ci mettiamo dentro 1. Poi per ogni i, 2 < = i < n-1, si guarda se i divide n, in caso affermativo si mette i nel contenitore, altrimenti no. Alla fine si aggiunge n al contenitore.
N.B. E' inutile testare n-1 perchè n-1 divide n solo se n = 2 e in questo caso n-1 = 1.
Ecco il codice (in Java) corrispondente:

    Vector v = new Vector();  //il contenitore
    	v.addElement(new Integer(1));  //si aggiunge 1 al contenitore
    	for(int i=2;i< N-1;i++){  // per i con 2 < = i < N-1
    //(quando hai finito con i, poi incrementa i di uno (i++))
    		if(N % i == 0){  //se i divide N
    			v.addElement(new Integer(i));}  //aggiungi i al contenitore
    		}  //fine del ciclo for
    	v.addElement(new Integer(N));  //aggiungi N al contenitore
    	return v;  //restituisci il contenitore

Tutto quello che sta dietro a // non fa parte del codice, sono dei commenti.