Fala galera, blz ?
Então, foi passado o seguinte problema para mim: “metodo que retorne em uma string as relações de numeros primos de 1 até o valor n”
eu não sei bem como começo esse método…dicas?
abs,
Fala galera, blz ?
Então, foi passado o seguinte problema para mim: “metodo que retorne em uma string as relações de numeros primos de 1 até o valor n”
eu não sei bem como começo esse método…dicas?
abs,
[quote=victorrgds]Fala galera, blz ?
Então, foi passado o seguinte problema para mim: “metodo que retorne em uma string as relações de numeros primos de 1 até o valor n”
eu não sei bem como começo esse método…dicas?
abs,[/quote]
Se vai de 1 até n, temos um laço de repetição que tem seu inicio em 1 e vai o N, que nesse caso, é um digito que o usuário irá informar.
Feito isso, é aplicar a lógica para verificar se a cada iteração, que obviamente vai somando de um em um, é um número primo. Caso seja, adiciona a String, senão, continua.
A String pode ser algo como : “1;3;5;7;11”. Veja, só números que são divisíveis por 1 ou por ele mesmo.
Abraços.
Nel, obrigado pela resposta…até ai beleza, eu queria tirar mais uma duvida…como eu faria pra passar pro java essa parte do: "divisível por 1 ou por ele mesmo, tipo…if(n / 1 && n / n) ??
fiquei curioso agora, deve ser algo simples mas andei pensando e não achei solução…
Sei que números primos só são divisíveis por 1 e por eles mesmos, mas qual o if a ser usado?
apesar de parecer simples minhas verificações não obtiveram sucesso, e se consegui foi de um jeito não muito ‘didático’.
Eai, como ficaria?
Então lima, realmente cara…parece simples mas na hora de criar o método vc se inrrola um pouco, é oque ta acontecendo cmg…por exemplo…como eu retorno esses numeros em string ? poderia criar um array de string como parametro ?
abs,
[quote=victorrgds]Nel, obrigado pela resposta…até ai beleza, eu queria tirar mais uma duvida…como eu faria pra passar pro java essa parte do: "divisível por 1 ou por ele mesmo, tipo…if(n / 1 && n / n) ??
[/quote]
divisível seria igual a zero, certo?
então ficaria assim:
[code]if(numero % numero == 0 && numero % 1 == 0){
}[/code]
mas essa verificação não é suficiente para determinar se um número é primo ou não,
por isso minha duvida ali em cima :lol:
e no caso, pra retornar os numeros de 1 até n em string, teria que ser um array de string mesmo ?
Não, podes fazer como achar melhor. Ao que eu entendi, é uma String somente, por isso eu disse “1;3;5”.
Podes usar um StringBuffer e depois gerar a String, seria basicamente algo como:
[code]StringBuffer sb = new StringBuffer();
sb.append(“1”);
sb.append(";");
sb.append(“3”);
sb.toString();[/code]
Claro, tem a lógica ai. Sobre como verificar se o número é primo, tem n formas de serem executadas. Tem umas soluções bem interessantes aqui no GUJ mesmo.
Meu conselho é que tu tente fazer isso para trabalhar sua lógica, ao menos hoje. Amanhã (ou a noite) você pesquisa pela solução em si, senão, vai ficar sem trabalhar lógica e ai fica complicado para um programador.
Abraços.
Achei interessante esse StringBuffer, eu ainda não conheci essa utilidade…mas vendo oque vc fez deu pra entender mais ou menos oque ele faz…
esse stringbuffer tomaria o lugar do array no caso de ter que retornar valores em string então ? é isso ?
abs,
[quote=victorrgds]esse stringbuffer tomaria o lugar do array no caso de ter que retornar valores em string então ? é isso ?
abs,[/quote]
Ele oferece uma perfomance superior em termos de concatenação de String. Não é correto concatenar Strings em sequencia, por n motivos.
Eu lhe mostrei uma outra alternativa, podes usar um array, um List, LinkedList, Set, HashSet, uma única String, enfim, só estou lhe mostrando as alternativas.
A sua maior “preocupação” é em conseguir identificar o número primo. Primeiro é saber quando um número é primo, as regras que regem isso, depois a lógica, por fim e menos preocupante, é armazenar esses valores.
Abraços
Entendi, bom…dei uma olhada no javadocs tbm por curiosidade a respeito do StringBuffer, oque vc está falando é verdade, é que sempre busco uma maneira de facilitar o trabalho, to meio que tentando unir as informações aqui pra montar um método que sirva e seja bom…enquanto estamos aqui descutindo a solução eu estou tentando fazer o metodo do trabalho mesmo…rsrs
agradeço as duvidas esclarecidas e caso eu encontre a solução total do método postarei aqui pra vcs 
abs,
[quote=limaaq]fiquei curioso agora, deve ser algo simples mas andei pensando e não achei solução…
Sei que números primos só são divisíveis por 1 e por eles mesmos, mas qual o if a ser usado?
apesar de parecer simples minhas verificações não obtiveram sucesso, e se consegui foi de um jeito não muito ‘didático’.
Eai, como ficaria?[/quote]
procurando depois você ve como fica simples, rs.
Foi mais preguiça de pensar, mas tudo bem. :roll:
Abraço!
Se você gosta de ler mangás e sabe um pouquinho só de inglês, (mangá também é cultura!), vai ver que sua definição está incompleta.
Leia o “Mathematical Girls” ( http://www.batoto.com/comic/_/comics/suugaku-girl-r1550 ) e vai entender por que é que um número primo é divisível por 1 e ele mesmo, mas 1 não deve ser primo.
O pior de tudo é que estou falando sério…
andei tentando elaborar o metodo aqui, porém não deu certo…vejam:
[code]public String primos(int n, int v[]){
if(n % n == 0 && n % 1 == 0 ){
int i = 1;
for(i = 1; i > v.length; i++){
}
}
}
[/code]
seria basicamente isso ? sem o retorno dos numeros é claro…no caso pra retornar eu poderia usar um JOP ? IntegerParseInt ?
Sua lógica está errada. Do jeito que você fez, todos os números são primos, o que não é verdade.
A lógica é:
Um número é primo quando ele é APENAS divisível por 1 e por ele mesmo, e não é ele mesmo o número 1; ele NÃO É divisível por outros números.
Ou seja, o número 10 não é primo porque é divisível por 1, 2, 5 e 10.
Para checar se um número N é primo, o jeito mais boboca de fazer isso é você ir tentando dividir esse número por um número “i”, sucessivamente, por 2, 3, 4, … até N - 1, e ver se alguma divisão deixa resto. Se alguma delas não deixar resto (ou seja, N % i == 0), então o número NÃO é primo.
eu poderia colocar um else if pra verificar se o numero é 1, daria certo tbm ?
Pode pôr. Não tem problema. É provavelmente o que eu faria.
mas ai velho, se colocasse o 8 por exemplo…ele é divisível por ele mesmo e por 1, mas não é primo…:S
ta começando a me deixar confuso esses primos malditos…
[quote=victorrgds]mas ai velho, se colocasse o 8 por exemplo…ele é divisível por ele mesmo e por 1, mas não é primo…:S
ta começando a me deixar confuso esses primos malditos…[/quote]
Lógico que não, 8/2 = 4, resto 0.
8 % 2 = 0. Entendeu ? O que foi dito é que se tu fizesse um for de 2 até 7, tu teria um resultado em que o 8 % i == 0, ou seja, em algum momento ele foi divisível por algum número que não era 1 e nem ele mesmo, o que, deixa de ser primo.