Dizer qual numero é primo em java [RESOLVIDO]

bom galera, não sei o que ta errado nesse codigo. preciso receber um vetor de 9 posições depois percorrer o vetor e verificar um a um os numeros pra saber se são primos. Os que forem devo imprimir na tela o numero e a posição no vetor.
criei esse codigo e não sei o que ta errado. Se alguem puder me dizer onde esta o erro fico agradecido.

public static void main(String[] args) {

        int n[] = new int[9];
        for (int i = 0; i < n.length; i++) {

            n[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite o " + (1 + i) + "º numero"));

        }
        for (int i = 1; i < n.length; i++) {
            boolean primo = true;
            for (int j = 2; j < n.length; j++) {
                if (n[i] % i == 0) {
                    primo = false;
                    break;
                }
            }
            if (primo == true) {
                System.out.println(n[i]);
                System.out.println(i);
            }
        }
    }
}

Jovem,

Não existe números primos em Java e sim em Matematica. Creio que um livro de 4º ou 5º irá lhe ajudar.

Abs,

O @Kanin Dragon já disse tudo. A linguagem Java não sabe o que é um número primo. O que você pode fazer é buscar um algoritmo matemático, e implementa-lo em uma linguagem de programação.

Desculpe ai Andre Rosa se te ofendi. só preciso de ajuda.

[quote=garotinhodejesus]kkkkkkkk
se vcs não podem ajudar deveriam ficar calados e nem perder o seu tempo.
eu sei que um numero primo só pode ser dividido por 1 e ele mesmo. não estou conseguindo fazer isso na linguagem java. por isso pedi ajuda. agora vcs que se jugam tão inteligentes, fazer o que né babacas.[/quote]

Não seja mal agradecido. :-o

Se você rever o tópico, verá que além de tudo sua pergunta está mal-formulada.

[quote]bom galera, não sei o que ta errado nesse codigo. preciso receber um vetor de 9 posições depois percorrer o vetor e verificar um a um os numeros pra saber se são primos. Os que forem devo imprimir na tela o numero e a posição no vetor.
criei esse codigo e não sei o que ta errado. Se alguem puder me dizer onde esta o erro fico agradecido. [/quote]

E nem nós sabemos! Você não informou a mensagem de erro emitida pelo compilador (caso haja), você não informou o porque de achar que está errado e etc. Um dos segredos é saber fazer perguntas inteligentes, e um outro segredo é saber ter a devida educação em fóruns.

Desculpe ai Andre Rosa se te ofendi. só preciso de ajuda.
Pode me dá um exemplo que calcule corretamente se um numero é primo?

http://pt.wikipedia.org/wiki/N%C3%BAmero_primo

No proprio forum vc encontra sobre a sua duvida, pois muitos ja tiveram.
Olha este link: http://www.guj.com.br/java/81234-numeros-primos

[quote=garotinhodejesus]Desculpe ai Andre Rosa se te ofendi. só preciso de ajuda.
Pode me dá um exemplo que calcule corretamente se um numero é primo?[/quote]

A resposta está aqui:

Só tente entender o que se passa. A explicação do EugenioMonteiro está ótima.

ele continua com este problema de preguiça…

Vou colocar os erros como comentários:

[code]public static void main(String[] args) {

        int n[] = new int[9];  
        for (int i = 0; i < n.length; i++) {  
  
            n[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite o " + (1 + i) + "º numero"));  
  
        }  
        for (int i = 1; i < n.length; i++) {  // Aqui o valor de i deveria ser 0, já que os vetores começam em zero
            boolean primo = true;  
            for (int j = 2; j < n.length; j++) {  // Aqui, ao invés de n.length, você deveria usar n[i], ou seja, o próprio número
                if (n[i] % i == 0) {  // O j deve ser usado, sendo que i vai ser sempre o mesmo valor na execução do segundo for (que usa j)
                    primo = false;  
                    break;  
                }  
            }  
            if (primo == true) {  
                System.out.println(n[i]);  // Aqui você está exibindo o próprio número,
                System.out.println(i);     // pulando uma linha e exibindo a posição no vetor e nada mais
            }  
        }  

}[/code]

No caso, o código já com as correções:

[code] public static void main(String[] args) {

            int n[] = new int[9];    
            for (int i = 0; i < n.length; i++) {    
        
                n[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite o " + (1 + i) + "º numero"));    
        
            } 
            for (int i = 0; i < n.length; i++) {
                boolean primo = true;    
                for (int j = 2; j < n[i]; j++) {
                    if (n[i] % j == 0) {
                        primo = false;    
                        break;    
                    }    
                }    
                if (primo == true) {    
                    System.out.println(n[i] + " é primo. Posição no vetor: " + i);
                }    
            }    
}[/code]