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);
}
}
}
}
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.
[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.
[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.
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]