Esercizio 25 – Generatore numeri primi
- Novembre 02, 2010
- by
- Donatantonio
Realizzare una classe PrimeGenerator con metodo nextPrime() che genera il prossimo numero primo.
Scrivere e testare un programma che chiede all’utente un intero n e stampa tutti i numeri primi compresi tra 2 ed n.
Ad esempio se l’input è 20, il programma stampa:
2
3
5
7
11
13
17
19
La classe PrimeGenerator.java:
public class PrimeGenerator
{
int numero;
// Metodo Costruttore vuoto
public PrimeGenerator(int n){
this.numero = n;
nextPrime(2);
}
// Metodo che calcola i numeri primi compresi tra 1 e n
public void nextPrime(int n)
{
int posMax = (int)Math.sqrt(n + 1);
for(int divisore = 2; divisore <= posMax; divisore++){
if (n % divisore == 0 && n!=2){
if(n<=numero){
nextPrime(n+1);
}
return;
}
}
System.out.println(n);
if(n<=numero){
nextPrime(n+1);
}
}
}
La classe di test:
import java.util.Scanner;
public class TestPrime
{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
// Prendo in input un numero
System.out.println("Dammi un numero: ");
int num = in.nextInt();
PrimeGenerator NumeriPrimi = new PrimeGenerator(num);
}
}

