Identificar Numero Primo e colocar em array

3 respostas
G

Pessoal,

Tenho eu programinha da facul e estou com dificudade no seguinte:

O programa identifica os numeros primos do array a e copia para o array b de mesmo tamanho.
Criei a lógica e o programa identifica quais não são numeros primos...
primos (11, 13, 89...), nao consigo copia-los para o array b.

/* Lista1: classe para exercícios de aquecimento. */
import javax.swing.*;

public class Lista1_19 {
	public static void main(String args[]) {
		/*
		 * Vetor de "entrada", que já é alocado e inicializado. Neste caso, o
		 * new é dispensado, pois o compilador já deduz o número de posições que
		 * devem ser alocadas.
		 */
		int a[] = { 32, 45, 89, 66, 12, 35, 10, 96, 38, 15, 13, 11, 65, 81, 35,
				64, 16, 89, 54, 19 };
		/*
		 * A variável n conterá sempre o tamanho do vetor a. Isto irá facilitar
		 * novos testes caso queira mudar o conteúdo do vetor a
		 */
		int n = a.length;
		/*
		 * Declaração e alocação do vetor b, em que será escrita a saída. Não
		 * sabemos quantos elementos serão necessários, mas sabemos que n serão
		 * suficientes. O objetivo dos exercícios é mudar o conteúdo do vetor b.
		 * A variável m declarada a seguir também deve ser alterada, indicando
		 * quantos elementos de b são realmente importantes para a resposta.
		 */
		int b[] = new int[n];
		int m = 0;
		/* A variável a seguir é usada como índice de laços. */
		int i;
		/*
		 * Coloque aqui o código necessário para resolver o problema. Novas
		 * variáveis podem ser criadas, se necessário. No final, b e m devem ser
		 * modificados.
		 */

		

		m = n;

		
		for (int counter = 0; counter < n - 1; counter++) {

			for (i = 2; i <= a[counter]; i++) {
				
				//if ((a[counter] % i) && (i != a[counter]))
				if ((a[counter] % i == 0) && (i != a[counter]))
					System.out.println("nao primo" + a[counter]);
									
			}

		}

		/* O código abaixo mostra o resultado. Não deve ser alterado */
		String saida = "Resposta:\n";
		for (i = 0; i < m; i++)
			saida = saida + b[i] + " ";
		saida = saida + "\nFim.";
		JOptionPane.showMessageDialog(null, saida, "Lista1",
				JOptionPane.PLAIN_MESSAGE);
		System.exit(0);
	}
}

3 Respostas

paulo.marcelo
Guilherme, Achei o código abaixo que identifica números primos, creio que pode lhe ajudar:
class prbprimo1
{
    public static void main(String arg[])
    {
        for(int i = 1; i <= 25000; i++ )
               if (primo(i) == true) System.out.println(i);    
    }

    public static boolean primo(int num)
    {
        boolean p;
        int contador = 0;
        int i = 1;
        while(i <= num)  
        {
            if (num  % i == 0)  contador++; 
            i++;
        }
    
        if (contador <= 2) p = true;
        else p = false;

        return p;
    }
}
paulo.marcelo

Segue este link de onde eu achei e tem mais exemplos no link

http://pjsml.50megs.com/java/primos.html

G

Valeu pela ajuda, mas nao resolve o problema direito…

Eu já sei quem não é primo…
Agora pegar os primos e colocar no array é que nao sei como…

Achei outras solução que utilizam o break, mas eu preciso percorrer todo meu array!

Criado 17 de março de 2008
Ultima resposta 17 de mar. de 2008
Respostas 3
Participantes 2