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); } }