1
resposta

Desafio: hora da prática

package Desafio3;

import Desafio3.cachorro_e_gato.Cachorro;
import Desafio3.cachorro_e_gato.Gato;
import Desafio3.conta_bancaria.ContaBancaria;
import Desafio3.conta_bancaria.ContaCorrente;
import Desafio3.numeros_primos.GeradorPrimo;
import Desafio3.numeros_primos.NumerosPrimos;
import Desafio3.numeros_primos.VerificadorPrimo;

public class Principal extends NumerosPrimos{
    public static void main(String[] args) {
        // 1- Classe Carro!
        Carro carroModelo = new Carro();

        carroModelo.modeloCarro("Hylux");
        carroModelo.precos(235590, 309590, 372890);
        carroModelo.exibir();

        //2- Classe Animal!
        Cachorro cachorro = new Cachorro();
        Gato gato = new Gato();

        cachorro.emitirSom();
        cachorro.abanarORabo();

        gato.emitirSom();
        gato.aranharMoveis();

        // 3- Classe ContaBancaria
        ContaBancaria contaBancaria = new ContaBancaria();
        ContaCorrente contaCorrente = new ContaCorrente();

        contaBancaria.setSaldo(1000);
        contaBancaria.setSacar(200);
        contaBancaria.setDepositar(1000);

        contaBancaria.exibir();

        contaCorrente.setCobrarTarifaMensal(1000);

        System.out.println(contaBancaria.getConsultarSaldo() - contaCorrente.getCobrarTarifaMensal());

        //4- NumerosPrimos
        VerificadorPrimo verificador = new VerificadorPrimo();
        NumerosPrimos numerosPrimos = new NumerosPrimos();
        GeradorPrimo geradorPrimo = new GeradorPrimo();

        verificador.verificarPrimalidade(10);

        numerosPrimos.listarPrimos(30);

        int proximo = geradorPrimo.gerarProximoPrimo(20);
        System.out.println("O proximo numero é: " + proximo);

    }
}
package Desafio3;

import java.security.PrivateKey;

public class Carro {
    private String modelo;
    private double valorAno1;
    private double valorAno2;
    private double valorAno3;

    public void modeloCarro (String modelo) {
        this.modelo = modelo;
    }

    public void precos (double valorAno1, double valorAno2, double valorAno3){
        this.valorAno1 = valorAno1;
        this.valorAno2 = valorAno2;
        this.valorAno3 = valorAno3;
    }

    public void exibir () {
        System.out.println("O modelo é: " + modelo);
        System.out.println("Preço do primeiro ano: " + valorAno1);
        System.out.println("Preço do segundo ano: " + valorAno2);
        System.out.println("Preço do terceiro ano: " + valorAno3);
        System.out.println("O menor preço entre eles é: " + menorPreco());
        System.out.println("O menor preço entre eles é: " + maiorPreco());
    }

    private double menorPreco () {
        double menorPreco = valorAno1;

        if (menorPreco > valorAno2) {
            menorPreco = valorAno2;
        }
        if (menorPreco > valorAno3) {
            menorPreco = valorAno3;
        }
        return menorPreco;
    }
    private double maiorPreco () {
        double maiorPreco = valorAno1;

        if (maiorPreco < valorAno2) {
            maiorPreco = valorAno2;
        }
        if (maiorPreco < valorAno3) {
            maiorPreco = valorAno3;
        }
        return maiorPreco;
    }
}
package Desafio3.numeros_primos;

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 parar) {
        System.out.println("Numeros primos " + parar + ": ");
        for (int i = 2; i <= parar; i++) {
            if (verificarPrimalidade(i)) {
                System.out.println(i + " ");
            }
        }
        System.out.println();
    }
}
package Desafio3.numeros_primos;

public class VerificadorPrimo extends NumerosPrimos{
    public void verificarSeEhPrimo(int numero) {
        if (verificarPrimalidade(numero)) {
            System.out.println("Esse numero é primo: " + numero );
        } else {
            System.out.println("Esse numero não é primo: " + numero);
        }
    }
}
package Desafio3.numeros_primos;

public class GeradorPrimo extends NumerosPrimos {
    public int gerarProximoPrimo(int primo) {
        int proximo = primo + 1;
        while (verificarPrimalidade(primo)) {
            proximo++;
        }
        return proximo;
    }
}
1 resposta

Olá, Alfredo!

Parabéns pela dedicação e organização do projeto!

Tenho apenas uma correção direta para o seu código não travar:

Na classe GeradorPrimo, o seu while está verificando o número errado, o que gera um loop infinito. O correto é verificar a variável proximo (que está sendo incrementada) e usar a negação (!) para continuar procurando enquanto não achar um primo.

Fica assim:

public int gerarProximoPrimo(int primo) {
    int proximo = primo + 1;
    // Enquanto NÃO (!) for primo, tenta o próximo
    while (!verificarPrimalidade(proximo)) {
        proximo++;
    }
    return proximo;
}

Bons estudos!

Sucesso

Imagem da comunidade