class NumerosPrimos {
public boolean verificarPrimalidade(int numero) {
if (numero <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(numero); i++) {
if (numero % i == 0) {
return false;
}
}
return true;
}
public void listarPrimos(int limite) {
for (int i = 2; i <= limite; i++) {
if (verificarPrimalidade(i)) {
System.out.println(i);
}
}
}
}
class VerificadorPrimo extends NumerosPrimos {
public void verificarSeEhPrimo(int numero) {
if (verificarPrimalidade(numero)) {
System.out.println(numero + " é primo");
} else {
System.out.println(numero + " não é primo");
}
}
}
class GeradorPrimo extends NumerosPrimos {
private int ultimoPrimo = 1;
public int gerarProximoPrimo() {
int num = ultimoPrimo + 1;
while (!verificarPrimalidade(num)) {
num++;
}
ultimoPrimo = num;
return num;
}
}
public class Main {
public static void main(String[] args) {
VerificadorPrimo verificador = new VerificadorPrimo();
verificador.verificarSeEhPrimo(17);
verificador.verificarSeEhPrimo(18);
GeradorPrimo gerador = new GeradorPrimo();
System.out.println("Próximo primo: " + gerador.gerarProximoPrimo());
System.out.println("Próximo primo: " + gerador.gerarProximoPrimo());
}
}