Vetor com números primos... calma q não é tão simples! rs
6 respostas
M
magafePJ
Oi gente, tudo bem?
Sou nova por aqui, mas já chego com um problema!
Tenho que criar uma classe que receba vários números em um vetor e no final devo apresentar os números primos que antecedem cada um dos números digitados…!
Até onde cheguei:
Primeiro convém fazeres um método que teste os números e retorne algo a dizer se são ou não primos. Por exemplo:
public static boolean isPrime(long n) {
boolean prime = true;
for (long i = 3; i <= Math.sqrt(n); i += 2)
if (n % i == 0) {
prime = false;
break;
}
if (( n%2 !=0 && prime && n > 2) || n == 2) {
return true;
} else {
return false;
}
}
Este método retorna true quando o número é primo.
Depois é aplicá-lo no teu código.
Exemplo:
//...Strings="";//Este objecto String vai armazenar os números primos.int[]números=newint[5];//São introduzidos 5 números por exemplofor(inti=0;i<5,i++){if(numeros[i].isPrime==true){s=s+numeros[i]+", ";}i++;}System.out.println(s);//...
Espero que isto te seja útil
Cumprimentos.
M
magafePJ
[b]Opa, acredito que ajudou sim…
Vou ver se consigo testar quando sair do trampo.
A única duvidazinha é onde colocar para mostrar todos os números primos até cada número digitado…
Tks :!:
Se alguém mais quiser responder, é sempre bom aprimorarmos os códigos![/b]
S
SrFabioPJ
Hum…
[quote A única duvidazinha é onde colocar para mostrar todos os números primos até cada número digitado…[/quote]
Dá um exemplo concreto para eu entender melhor. Estou a fazer confusão neste momento lol.
M
magafePJ
Beleza…
Um exemplo:
O programa mostra através do JOptionPane:
“Digite a quantidade de elementos que o vetor possuirá:”
//Aí ele atribui o valor digitado acima para a variável e assim poderei determinar o tamanho do vetor.
O programa mostra através do JOptionPane:
“Digite o valor da posição ‘x’:”
//aqui eu insiro os valores de cada elemento do vetor, certo?
Agora eu preciso fazer, através do uso de estruturas de controle, um código que mostre os números primos existentes que ANTECEDEM cada um dos valores digitados para o vetor, como no exemplo abaixo:
Suponhamos que o usuário definiu que o vetor terá 3 elementos e digita 3 números para as posições: 4, 5 e 6.
Assim eu preciso mostrar
Primos que antecedem o número 4: 1, 2, 3
Primos que antecedem o número 5: 1, 2, 3
Primos que antecedem o número 6: 1, 2, 3, 5
Deu pra entender melhor?
Tem como ajudar? hehe… é que eu não tenho eclipse aqui em casa… só no note do meu namorado…!
Vlw!
S
SrFabioPJ
Ah já compreendi o objectivo da aplicação. Bem para isso podes usar um encadeamento de for()
O primeiro for é para percorrer o vector e o for que está dentro serve para decrementar cada elemento do vector ao mesmo tempo que testa e guarda numa String todos os primos. Neste momento não estou em casa não posso produzir um código que te seja útil.
Este códgo não é de todo muito funcional para o teu caso, precisa de muitas melhorias mas serve como bom exemplo da estrutura que vais ter que te guiar, encadeamento de for().