Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

grs666

[Resolvido] Numeros Primos

Recommended Posts

Olá pessoal, gostaria que tirassem uma duvida minha...

estou querendo fazer o seguinte: pedir pro usuario digitar um numero inteiro e pedir pro programa verificar se esse numero digitado é primo ou não.

Quando compilo o programa e digito um numero inteiro, sempre da a seguinte mensagem: O numero "n" nao é primo.

 

O código esta ai abaixo:

valeu!

import java.util.Scanner;
public class Exercicio1 {
	public static void main(String args[]){
		Scanner sc=new Scanner(System.in);
		int n,n2,i;
		int resto=0;
		System.out.print("digite o numero:");
		n=sc.nextInt();
		n2=n-1;
		for(i=n2;i<=2;i--)
			resto=n%i;
		if(resto!=0)
		System.out.print("O numero "+n+" e primo");
		if(resto==0)
		System.out.printf("o numero "+n+" nao e primo");
		
		}
	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeira coisa a comparação do for está errada.

 

Mude de:

i<=2

Para

i>=2

Faça enquanto i maior ou igual a 2.

 

 

Do jeito que está fazendo o resultado de resto é sempre a divisão de n/2

Não está correto! Assim todos os pares não são primos o os ímpares são.

Não testei, mas veja se isso resolve:

 

for(i=n2;i>=2;i--){
   resto=n%i;
   if(resto==0)
      break;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É, realmente funcionou.

Obrigado Kandrade por resolver meu problema.

Foi uma falta de atenção minha isso que você postou.

acontece...

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, outro detalhe...

esqueci de mencionar que quando o usuario entra com os numeros 2 e 1,

na tela é mostrado que os mesmos não são primos...

tentei fazer de um geito aqui mais mostra duas vezes...

por exemplo, com o numero 2: o numero 2 é primo.o numero 2 nao e primo.

 

Uma luz, por favor...

valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem vários jeitos de fazer isso.

Um deles é fazer if n = 1 ou n = 2 muda resto para 1 por exemplo, mas nesse caso eu faria assim:

 

if (n<=0)
   primo = false;

for(i=n2;i>=2;i--){
   resto=n%i;
   if(resto==0){
      primo = false; // crie essa variavel como boolean e inicie-a com true
      break;
   }
}

if(primo){
   System.out.print("O numero "+n+" e primo");
}
else{
   System.out.printf("o numero "+n+" nao e primo");
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.