Numeros Primos

5 respostas
jhecko

Bom dia Pessoal
estou com um probleminha e nao estou conseguindo resolver
eu tenho que digitar um numero e o programa tem que ler
esse numero a partir do teclado e imprimir os numeros primos
ate o numero digitado
eu fiz mas ele nao ta retornando o valos certo

import java.util.Scanner;

public class Exercicio_02 {

public static void main (String args[]){

Scanner scan = new Scanner (System.in);
int num;
	
	System.out.println("Digite um Número: ");
	num = scan.nextInt();
	
	for (int cont = 1; cont < num ; cont++){
		if (cont % num == 0){
			System.out.println("Os Números Primos até " + num + " são: ");
			System.out.print(cont + " ");
		} 
		
	}
	
}

}

5 Respostas

lgmhorus

Sua lógica está errada. Vamos supor que alguem digitou 10 no teclado.

cont = 1 ; num = 10 -> 1%10 = 1;

cont = 2 ; num = 10 -> 2%10 = 2;

cont = 3 ; num = 10 -> 3%10 = 3;

.

.

.

cont = 0 ; num = 10 -> 9%10 = 9;

Dessa forma, você vai imprimir todos os número de 1 até num-1. A melhor forma de verificar se um número é primo é para cada um, testa quantos divisores com resto zero ele tem de 2 até sua metade (arredondado para cima).

seduardo

Vc pode utilizar a funcao que verifica numeros primos do objeto BigInteger.

System.out.println("Os valores primos ate' " + num + "  sao");
for (int cont = 1; cont <= num; cont++){
   if (new BigInteger(String.valueOf(cont)).isProbablePrime(50)) {
      System.out.println(cont + " e' primo");
   }
}
orlandocn

esse link tem a descricao de um algoritmo muito conhecido

jhecko

é que ainda nao aprendi essas funções
obrigado pela dica mesmo assim

ajob

Olha só,

na matemática para saber se um número é primo e para facilitar nossa vida basta nos preucuparmos coms os primos menores que sua raiz quadrada, se algum deles dividirem o número, isso quer dizer que ele não é primo, caso contrário ele será primo. (entendeu???)

ex.
queremos saber se 10 é primo.
a raiz quadrada de 10 é aproxiamadamente 3,algumacoisa. Quais são os primos menores que 3,algumacoisa? são 3 e 2. Observe que 2 divide 10, logo 10 não é primo.

queremos saber se 11 é primo.
mesma coisa. a raiz quadrada de 11 é aproxiamadamente 3,algumacoisa. Quais são os primos menores que 3,algumacoisa? são 3 e 2. Mas observe que nem 3 e nem 2 divide 11, logo 11 é primo.

agora entendeu???

não???

vamos de novo…

Um número é dito primo quando seus únicos divisores inteiros positivos são 1 e ele mesmo. Logo não existe mais nenhum número menos do que ele que o divída. Então como fazer para saber se o número é primo?
faça um programa que testa se o número tem algum divisor menos do que ele e que não seja 1, se ele tiver não vai ser primo, caso contrário é primo.

Entendeu???

ta legal, um código que testa se é primo ou não

public boolean primo(int number){

int x=0;

for(int i=2; i<=Math.sqrt(number);i++){

if(number%i==0)

x+=1;

}

if(x==0)

return true;

else

return false;

}

não sei se é o melhor mais funciona.

Espero ter ajudado…

Desculpa ter falado tanto, mas é por que com certeza outras pessoas com a mesma dúvida olharam esse tópico e podem não entender, ou querer entender melho…

Abraço…

Criado 14 de julho de 2008
Ultima resposta 14 de jul. de 2008
Respostas 5
Participantes 5