Problema em linha de comando para números primos

3 respostas
R

Pessoal, estou escrevendo uma linha de comando dentro de um método que visa receber um numero como parâmetro e retorne true ou false, indicando se o número é primo ou não. Abaixo segue o código que escrevi:

[code]
public boolean NumPrimos(int num){
if(num % num == 0 && num % 1 == 0){
return true;}
else{
return false;}
}
[\code]

Número primo é o número dividido por 1 e ele mesmo dando com resto 0.
O problema é que no código escrito esta retornando true para todos. Gostaria de ver o que há de errado neste código...

Rampon,

3 Respostas

R

Também fiz desta maneira mas não esta dando o retorno certo:

public class Primos {
    public boolean NumPrimos(int num){
        int cont = 0;
        for(int i = 1; i < num; i ++){
            if(num % i == 0 && num % 1 == 0){
            cont++;}
        }
        if(cont == 2){
            return true;}
        return false;}
asousaj

Amigo,
deveria checar se (cont == 1).

Testa assim

public class Primos {
	public boolean numPrimos(int num) {
		int cont = 0;
		for (int i = 1; i < num; i++) {
			if (num % i == 0 && num % 1 == 0) {
				cont++;
			}
		}
		System.out.println("cont = " + cont);//checando valor de cont
		if (cont == 1) { // se for 1 é primo
			return true;
		}
		return false;
	}

	public static void main(String[] args) {
		Primos primos = new Primos();
		System.out.println(primos.numPrimos(127));// altere aqui é veja na
													// console
	}
}
R

Muito obrigado pela ajuda!!!
Um abraço!!!
Rampon,

Criado 11 de dezembro de 2011
Ultima resposta 11 de dez. de 2011
Respostas 3
Participantes 2