Java - Verifica se é número primo
O exercício abaixo fiz em sala de aula na matéria de Paradigmas da computação.
Números primos são aqueles que são divisíveis somente por 1 ou por ele mesmo.
Resumindo, o processo abaixo corre da seguinte forma:
- Solicita um número ao usuário;
- Seta a variável flag contendo o valor “0″;
- Passa número por número a partir de 2 até um número menor que o número informado;
- Se o número que foi digitado divido pelo i tiver resto 0, significa que é número primo;
- Caso não seja um número primo, continua a execução do laço;
- Porém, caso seja um número primo, atribui o valor 1 � variável flag e para a execução do laço;
- Ao sair do laço verificamos se a flag continua com valor 0 atribuído inicialmente ou se ela foi alterada para 1, significando que não é um número primo.
Código Java
package outro;
import javax.swing.JOptionPane;
public class NumeroPrimo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int numero = Integer.parseInt(JOptionPane.showInputDialog(”Digite um número”));
int flag = 0;
for(int i = 2; i < numero; i++) {
int resultado = numero % i;
if(resultado == 0) {
System.out.println(”Esse número não é primo”);
flag = 1;
break;
}
}
if(flag == 0) {
System.out.println(”Esse número é primo”);
}
}
}
April 2nd, 2007 at 1:07 pm
Aeee, agora ta certu
so que voce faz uma comparação cada vez que ele entra no for, se voce fizesse assim.
i = 2;
while(numero % i == 0 || i
April 2nd, 2007 at 2:28 pm
Boa Fill!
É realmente temos que dar grande importância as questões de lógica também
Valeu!
May 12th, 2007 at 8:55 am
Esse código pode ser otimizado se vocês fizerem as seguintes jogadas:
1) Verifiquem se o número é par, se for, vocês nem precisam entrar no loop for, pois o número terá no mínimo 3 divisores.
2) Caso não seja par, comecem o for com i = 3 e o incremente de 2 em 2, pois como ele é ímpar, ele nunca será divisível por números pares, portando não é necessário checar o resto essa divisão.
3) O for não precisa ir até i
May 12th, 2007 at 9:14 am
Juliano!
Obrigado pela colaboração!
=D
May 12th, 2007 at 12:02 pm
Faltou só a 3a. jogada, deu pau na hora que postei.
O for não precisa ir até i menor que o número. Basta ele ir até o i menor que o número/2. Vou explicar isso com um exemplo: Se um número não é divisível por 4, ele não será divisível por 8. Já a recíproca não é verdadeira, isto é, se ele for divisível por 8, ele será por 4.
Abraços.
September 11th, 2007 at 12:15 pm
NAO CONSIGO FAZER UM EXERCICIO DE JAVA TEM QUE VER SE O NUMERO É PAR ,IMPAR E PRIMO SE TIVER UMA DICA VOU ADORAR
September 12th, 2007 at 5:05 am
Olá Carla!
Pega o número e divide por 2… se o resto for 0 é para senão é impar!
=)
if((numero % 2) == 0) {
//par
}
else {
//impar
}
September 22nd, 2007 at 3:31 pm
muito legal mas vc e um chato e isibido pq vc acha q e so vc q pode em insurportario?
chato
September 24th, 2007 at 6:06 am
Olá Poli!
Obrigado pela sinceridade… mas ainda não entendi por que sou chato hahahaa
poderia me explicar?
Até mais!
November 21st, 2007 at 3:12 pm
POr favor me ajudem a resolver urgente!!!
Criar um programa que dada uma entrada de numero inteiro maior que 2, forneça como saída os numeros primos partindo do numero 2 ate o numero informado