0
respostas

[Projeto] Desafio: hora da Pratica (numeros Primos)

import br.com.alvaro.primos.GeradorPrimo;
import br.com.alvaro.primos.NumerosPrimos;
import br.com.alvaro.primos.VerificadorPrimos;

import java.util.Scanner;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Principal {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        VerificadorPrimos verificador = new VerificadorPrimos();
        GeradorPrimo gerador = new GeradorPrimo();
        NumerosPrimos lista = new NumerosPrimos();

        int opcao = 0;

        while (opcao != 4) {
            System.out.println("\n======== MENU NÚMEROS PRIMOS =======");
            System.out.println("1 - Verificar se é primo");
            System.out.println("2 - Lista de primos até um limete");
            System.out.println("3 - Gerar próximo primo");
            System.out.println("4 - Sair");
            System.out.println("Escolha: ");

            opcao = scanner.nextInt();

            switch (opcao){
                case 1:
                    System.out.println("Digite um Numero: ");
                    int num = scanner.nextInt();
                    verificador.VerificarSeEhPrimo(num);
                    break;

                case 2:
                    System.out.println("Listar Primos até: ");
                    int limete = scanner.nextInt();
                    lista.listarPrimos(limete);
                    break;

                    case 3:
                    System.out.print("Digite um número base: ");
                    int base = scanner.nextInt();
                    gerador.gerarProximoPrimo(base);
                    break;


                case 4:
                    System.out.println("Encerrando...");
                    break;

                default:
                    System.out.println("Opção invalida!");
            }
        }
        scanner.close();
    }

}
package br.com.alvaro.primos;

public class NumerosPrimos {


    boolean verificadorPrimo(int numero){
        if (numero <= 1)
            return false;

        for (int i = 2; i < numero; i++) {

            if (numero % i == 0)
                return false;

        }

        return true;
    }
    public void listarPrimos(int limete){
        for(int i = 2; i <= limete; i++){
            if(verificadorPrimo(i)){
                System.out.println(i);
            }
        }

    }
}
package br.com.alvaro.primos;

public class VerificadorPrimos extends NumerosPrimos{

    public void VerificarSeEhPrimo(int numero){
        if(verificadorPrimo(numero)){
            System.out.println(numero + "é primo!");
        }else{
            System.out.println(numero + "Não é primo!");
        }
    }
}
package br.com.alvaro.primos;

public class GeradorPrimo extends NumerosPrimos {
    private int ultimoPrimo = 1;
    public void gerarProximoPrimo(int base){
        int proximoNumero = ultimoPrimo + 1;

        while (!verificadorPrimo(proximoNumero)){
            proximoNumero++;
        }
        ultimoPrimo = proximoNumero;
        System.out.println("Proximo primo: " + ultimoPrimo);
    }
}