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:

  1. Solicita um número ao usuário;
  2. Seta a variável flag contendo o valor “0″;
  3. Passa número por número a partir de 2 até um número menor que o número informado;
  4. Se o número que foi digitado divido pelo i tiver resto 0, significa que é número primo;
  5. Caso não seja um número primo, continua a execução do laço;
  6. Porém, caso seja um número primo, atribui o valor 1 � variável flag e para a execução do laço;
  7. 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”);
}
}

}

10 Responses to “Java - Verifica se é número primo”

  1. Fill Says:

    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

  2. Andrey Pedro Lefkum Says:

    Boa Fill!
    É realmente temos que dar grande importância as questões de lógica também ;)
    Valeu!

  3. Juliano Says:

    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

  4. Andrey Pedro Lefkum Says:

    Juliano!
    Obrigado pela colaboração!
    =D

  5. Juliano Says:

    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.

  6. CARLA Says:

    NAO CONSIGO FAZER UM EXERCICIO DE JAVA TEM QUE VER SE O NUMERO É PAR ,IMPAR E PRIMO SE TIVER UMA DICA VOU ADORAR

  7. Andrey Pedro Lefkum Says:

    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
    }

  8. poly Says:

    muito legal mas vc e um chato e isibido pq vc acha q e so vc q pode em insurportario?

    chato

  9. Andrey Pedro Lefkum Says:

    Olá Poli!

    Obrigado pela sinceridade… mas ainda não entendi por que sou chato hahahaa
    poderia me explicar?

    Até mais!

  10. Romilda Says:

    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

Leave a Reply


This is a free Wordpress template provided by Mathew Browne | Web Design | SEO