Preciso de ajuda em um trabalho de casa

Elabore um programa que receba um número do utilizador e indique se o mesmo é um número primo

Um número primo é um número que é apenas divisível por ele próprio e pelo número 1.

O que fiz ate agora foi

import java.util.Scanner;

public class Exercicio3 {

	public static void main(String[] args) {
		
		Scanner teclado = new Scanner(System.in);
		System.out.println("Insira um numero");
		int numero_lido = teclado.nextInt();

		 boolean primo = true;

		if (primo) { 
			System.out.println("O Numero " + numero_lido + " é primo!");

		} else { 
			System.out.println("Não é primo!");
		}
	}
}

A materia é sobre

Operadores Específicos e Compactações Sintáticas

Exercício – Operadores Específicos

Estás no bom caminho. Só tens agora de alterar isto pela lógica de perceber se o número é primo ou não.

Se o número é divisivel por algum número entre 2 (inclusive) e ele proprio (exclusive) então ele não é primo.

boolean primo = true; // no começo assumimos que é primo
for (int i = 2; i < numero_lido; i++) {  
   if (numero_lido % i == 0) { 
      primo  = false; // o número é divisivel por i
   }
}

Podemos depois melhorar este código com duas optimizações:

  • Parar de procurar assim que entra no if e sabe que não é primo (colocando um break; a seguir a
    primo = false;)
  • Percorrer o for apenas até raiz quadrada do numero lido, inclusive, (se não encontrou divisores aí, não vai encontrar de certeza para a frente)
2 curtidas