Codice PHP:
public class NumeriPrimi {
//variabile di tipo long
int numero=0;
//array di tipo int
int[] numeri;
/** Creates a new instance of NumeriPrimi */
public NumeriPrimi(int aN) {
//inizializzo le proprietà della classe
this.numero=aN;
this.numeri=new int[this.numero];
inizializzaNumeri();
}
/**Calcola i primi n numeri primi minore uguale di n
*con il criterio Eratostene
*/
public void calcolaPrimi(){
for(int i=2;i<this.numeri.length;i++){
//controllo che il valore della posione i dell'array sia diversa da -1
if(this.numeri[i]!=-1) {
//inizio a controllare che l'elemento i+1 dell'arrray
//non sia un multiplo dell'elemento i della'array
for(int j=i+1;j<this.numeri.length;j++) {
//controllo che il valore della posione j dell'array sia diversa da -1
if(this.numeri[j]!=-1) {
//controllo che l'elemento della j posizione dell'array
//non sia un multiplo dell'elemento della posizione i dell'array
if((this.numeri[j]%this.numeri[i])==0) {
//elimino l'elemento di posizione j dell'array
//in quanto multiplo dell'elemento dell'array di posione i
this.numeri[j]=-1;//eliminazione fittizia
}
}
}
}
}
stampaPrimi();
}
/**questo metodo stampa i numeri primi
*
*/
private void stampaPrimi(){
System.out.println("Numeri primi compresi tra 0 e "+numero);
for(int i=2;i<this.numeri.length;i++) {
if(this.numeri[i]!=-1){
System.out.println(this.numeri[i]);
}
}
}
public static void main(String[] arg){
NumeriPrimi primi=new NumeriPrimi(120);
primi.calcolaPrimi();
}
/**Questo metodo inizializza l'array che conterrà i numeri
*da cui calcolare quelli primi
*/
private void inizializzaNumeri() {
for(int i=2;i<this.numeri.length;i++){
this.numeri[i]=i;
}
}
}
questo metodo utilizza il Crivello di Eratostene maggiore informazione sui numeri primi puoi trovarle wikipedia.it.
Cmq la classe lo scritta in fretta a funzionare funziona ma bisogna ottimizzarla per quanto riguarda la struttura dati infatti come ho fatto se devi calcolare i numeri primi tra 0 e 10000 devi avere un vettore con 10000 elementi, potresti ottimizzare memorizzando solo i numeri primi e non tutti i numero