Vetor dos 50 primeiros numeros primos [Resolvido]

8 respostas
L

Olá,
Ontem na faculdade o professor passou um exercicio para mostrar em um vetor os 50 primeiro numeros primos!
Ou seja é para armazenar 50 numeros primos em um vetor e mostrar na tela.
Se alguem puder me ajudar eu vou agradecer mto, pq eu quebrei a cabeça e naum consegui achar a tal da forma.
rsrsrs
Eu sei q naum eh nem um bicho de 7 cabeças para vcs.
Por favor me ajudem…

Grato…

8 Respostas

Ticianne

Calcula os numeros primos num loop de 0 a 50 e a cada colta do loop, armazena no vetor.

Veja aqui como clacular se eh primo: http://www.guj.com.br/posts/list/86171.java

g4j

Ja começou a fazer? Poste o código e descreva as dificuldades.

B

Um numero é primo quando:

  1. Ele não é 1.
  2. Ele é divisível por 1 e ele mesmo
  3. Ele não é divisível nenhum dos outros primos calculados anteriormente.

Extra: O maior divisor de um número é a raiz quadrada dele, não adianta tentar dividir por números maiores que isso, ele é automaticamente primo.

Sobre divisibilidade:
Um numero é divisível por outro quando o resto dessa divisão for zero.

Transforme o item 3 num if, e o extra na condição de parada do loop que você for implementar.

ajfilho

Dê uma olhada aqui e entenda o funcionamento do algoritmo:

http://pt.wikipedia.org/wiki/Crivo_de_Erat%C3%B3stenes

Abraços!

ViniGodoy

Talvez isso aqui tb te inspire:
http://www.guj.com.br/posts/list/50321.java#264645

L

ja comecei a fazer sim, soh q eu naum estou com o codigo aqui (agora estou no serviço)rsrsrs

rodrigo.bossini

Ao invés de armazenar os números primos num vetor, utilize vetor de bits:

public class Main {

    final static int n = 50;
	public static void main (String args []){
		int [] vetBits = new int [50];
		for ( int i = 0 ; i <n; i++){
			vetBits[i] = 1;
		}


		for ( int i = 2; i >< n/2 ; i++){
			for ( int j = i; j < n/2; j++){
				if ( (i * j) < n){
                    vetBits [i * j] = 0;
                }
			}
		}

		for ( int i = 0; i < n; i++)
			System.out.print ( vetBits[i] == 0 ? "" : i + " ");
	}	

}

Edit: Só faltou excluir o 1 nesse caso, que de fato não é primo. :)

L

Vlw ae galera consegui com as dicas que vcs me deram…
Muito obrigado eim?!
Ateh breve…
rsrsrs

Criado 18 de março de 2009
Ultima resposta 18 de mar. de 2009
Respostas 8
Participantes 7