4.Crie uma classe NumerosPrimos com métodos como verificarPrimalidade() e listarPrimos(). Em seguida, crie duas subclasses, VerificadorPrimo e GeradorPrimo, que herdam da classe NumerosPrimos. Adicione um método específico para cada uma das subclasses, como verificarSeEhPrimo() para o VerificadorPrimo e gerarProximoPrimo() para o GeradorPrimo.
Números Primos
package br.com.alura.numerosprimos;
public class NumerosPrimos {
public boolean verificarPrimalidade(int numero){
if (numero <= 1) {
return false;
}
for (int i = 2; i * i <= numero ; i++) {
if (numero % i == 0) {
return false;
}
} return true;
}
public void listarPrimos(int limiteSuperior){
System.out.println("Números Primos até " + limiteSuperior + ": ");
for (int i = 2; i <= limiteSuperior ; i++){
if (verificarPrimalidade(i)){
System.out.println(i + " ");
}
}
System.out.println(" ");
}
}
Gerador de Primos
package br.com.alura.numerosprimos;
public class GeradorPrimo extends NumerosPrimos {
public int geradorNumeroPrimo(int ultimoPrimoConhecido) {
int proximoPrimo = ultimoPrimoConhecido + 1;
while (!verificarPrimalidade(proximoPrimo)) {
proximoPrimo++;
}
return proximoPrimo;
}
}
Verificador de Primos
package br.com.alura.numerosprimos;
public class VerificadorPrimo extends NumerosPrimos {
public void verificarSeEhPrimo(int numero){
if (verificarPrimalidade(numero)){
System.out.println("O Número: " + numero + " é Primo!");
}
else System.out.println("O Número: " + numero + " não é Primo!");
}
}
Main
import br.com.alura.numerosprimos.GeradorPrimo;
import br.com.alura.numerosprimos.NumerosPrimos;
import br.com.alura.numerosprimos.VerificadorPrimo;
public class Main {
public static void main(String[] args) {
VerificadorPrimo verificadorPrimo = new VerificadorPrimo();
verificadorPrimo.verificarSeEhPrimo(13);
GeradorPrimo geradorPrimo = new GeradorPrimo();
int proximoPrimo = geradorPrimo.geradorNumeroPrimo(11);
System.out.println(proximoPrimo);
NumerosPrimos numerosPrimos = new NumerosPrimos();
numerosPrimos.listarPrimos(33);
}
}