1
resposta

java

Escreva um programa que recebe um número inteiro de entrada e mostre no terminal/console se o número é primo ou não. Exemplo: Entrada: 10. Saída: O número 10 não é um número primo. Entrada: 7. Saída: O número 7 é um número primo.

eu escrevi assim: import java.util.Scanner;

public class VerificadorPrimo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Digite um número inteiro: "); int numero = scanner.nextInt();

    boolean ehPrimo = true;
    
    if (numero <= 1) {
        ehPrimo = false;
    } else {
        for (int i = 2; i <= Math.sqrt(numero); i++) {
            if (numero % i == 0) {
                ehPrimo = false;
                break;
            }
        }
    }
    
    if (ehPrimo) {
        System.out.println("O número " + numero + " é um número primo.");
    } else {
        System.out.println("O número " + numero + " não é um número primo.");
    }
    
    scanner.close();
}

}

o resultado sai: Entrada: 10. Saída: O número 10 não é um número primo. Entrada: 7. Saída: O número 7 não é um número primo. *

preciso de ajuda...

1 resposta

Oi, Edson!

Seu problema está só no for.

A função Math.sqrt(numero) retorna a raiz quadrada de um número (Exemplo: Math.sqrt(9) retorna 3). Então nesse caso ela não atende ao que você precisa.

Como um número primo é um número que só é divisível por 1 e por ele mesmo, você pode montar um código semelhante a esse, mas que o contador vá de 2 a i <=numero-1. Se encontrar algum divisor (numero % i == 0), o número não é primo.

Exemplo: Se numero = 7, o contador vai de 2 a 6. Se encontrar um divisor nesse loop, 7 não seria primo. Mas, como sabemos que não vai encontrar, 7 é primo.

Outro exemplo: Se numero = 10, o contador vai de 2 a 9. O loop vai encontrar os divisores 2 e 5. Então 10 não é primo.

Espero ter ajudado!