Algoritmo simples em Java para verificar se um número e primo
Na formação do conjunto dos números Naturais existe um tipo de numeral que possui a propriedade de ser divisível somente por um e por ele mesmo, recebendo a denominação de número primo.
Última atualização em: | 66848 Visualizações
Veja neste artigo como verificar quais números são primos de maneira fácil usando Java.
Como verificar se um número é primo
Em Java, possuímos um operador que retorna o resto da divisão (%), ou seja, sempre que utilizado este operador, o retorno será o valor que sobrar da divisão inteira, veja o exemplo:
8 % 2 = 0, 0 será a sobra da operação, ou seja, 8 pode ser dividido por 2; 7 % 2 = 1, onde 1 será o resto da divisão, 7 não pode ser dividido por 2, mas o 6 sim, então 7-6 = 1
Utilizando esta ideia e sabendo o que é um número primo, que pode ser dividido por 1 ou por ele mesmo, podemos criar uma logica para saber se o número é primo ou não. Em java pode ser escrito da seguinte forma:
private static boolean ehPrimo(int numero) {
for (int j = 2; j < numero; j++) {
if (numero % j == 0)
return false;
}
return true;
}
Explicando o método, temos, um for que percorre todos os números entre 2 até um número a menos que o número passado por parâmetro no método (número que deve ser verificado), verificando se o resto da divisão inteira é igual a 0, se for significa que o número não é primo, pois pode ser dividido por outros números além de 1 e ele mesmo. Caso nenhuma divisão retornar 0, então temos um número primo.
Este método pode ser utilizado de várias formas na sua aplicação. Abaixo segue dois exemplos utilizando o método para verificar números primos.
Verificando se os números informados são primos
Segue um exemplo de uma classe que vai mostrar uma modal solicitando quantos números desejar, e vai verificar quais dos números informados são primos e vai mostrar uma saída com os números primos.
import javax.swing.JOptionPane;
public class Primos {
public static void main(String[] args) {
int n[] = new int[2];
for (int i = 0; i < n.length; i++) {
n[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite o " + (1 + i) + "º numero"));
}
for (int i = 0; i < n.length; i++) {
if( ehPrimo(n[i]) )
System.out.println(n[i] + " é primo. Posição no vetor: " + i);
}
}
private static boolean ehPrimo(int numero) {
for (int j = 2; j < numero; j++) {
if (numero % j == 0)
return false;
}
return true;
}
}
Listando todos os números primos de 1 a 100
Esta outra classe mostra as saídas de todos os números que estão entre o intervalo de 1 a 100, e mostra no console todos os números que são primos.
public class PrimosMainTodos {
public static void main(String[] args) {
for (int i = 2; i <= 100; i++) {
if( ehPrimo(i) )
System.out.println(i + " é primo.");
}
}
private static boolean ehPrimo(int numero) {
for (int j = 2; j < numero; j++) {
if (numero % j == 0)
return false;
}
return true;
}
}
Para trabalhar com números primos em Java é muito simples, não existe dificuldade após entender como pode ser utilizado o resto da divisão inteira que a linguagem possui.
Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.