knightmr 0 Denunciar post Postado Abril 10, 2005 Ola pessoal, beleza?Galera eu queria saber que formula eu uso para verificar se um numero é primo.Tpw, o malz eh q tem q ter while :/Se alguem puder, posta o código completo aewObs: Código em C++Vlw, t+ Compartilhar este post Link para o post Compartilhar em outros sites
Athene 1 Denunciar post Postado Abril 12, 2005 Bom, esse código (meio em java meio em portugol) diz se o número é primo, mas é um algoritmo "força bruta" que ainda pode ser otimizado. Espero q ajude... int numero,aux,div;numero -> 47;aux -> 2;div -> 0;while(aux<=numero/2){ se ((numero mod aux)==0) { div->div+1; } aux->aux+1;} Se (div == 0) escreva("É primo");senao escreva("Não é primo"); dani.... Compartilhar este post Link para o post Compartilhar em outros sites
knightmr 0 Denunciar post Postado Abril 13, 2005 Resolvi meu problema com sua ajuda!!!Mto obrigado!!Te devo uma XDt+ Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Abril 13, 2005 hmmm, só uma coisa que não entendi muito bemessa partewhile(aux<=numero/2)você só precisa checar até o valor do numero dividido por 2?não liga não...matematica sempre me perseguia na escola....rsvaleubeijosChan Compartilhar este post Link para o post Compartilhar em outros sites
Athene 1 Denunciar post Postado Abril 13, 2005 Oi!!!Pense assim:Quais são os divisores de 4 ? 1,2 e 4.Quais são os divisores de 10? 1,2,5 e 10.Quais são os divisores de 50? 1,2,5,10,20,25 e 50.Ou seja, o maior divisor de um número, além dele mesmo, é a metade desse número...(nossa, será q ficou compreensível isso??)Nenhum número vai ter um divisor q seja maior do que a metade dele e menor do q ele próprio (ou seja, não existe nenhum número maior do q 25 e menor do q o 50 q seja divisor de 50) Bom, no caso não teria problema nenhum em testar até o próprio número. Mas pra dar uma otimizada no algoritmo testo só até a metade dele... (não preciso testar se um número é divisível por ele mesmo pq todo número é divisível por ele mesmo...)Nossa, será q consegui explicar???? Espero q sim...Beijos... Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Abril 13, 2005 "Nenhum número vai ter um divisor q seja maior do que a metade dele e menor do q ele próprio"hmmm...não sabia disso...eu matava as aulas de matemática (ai se arrependimento matasse)acho que entendi...esse "mod" que tem na formula é o mesmo que % do java? retorna o resto de uma divisão?? Compartilhar este post Link para o post Compartilhar em outros sites
Athene 1 Denunciar post Postado Abril 13, 2005 Sim!!!!Beijos...Dani.... Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Abril 13, 2005 hmmm......então pq que quando eu tiro o "/2" do while ele retorna um numero primo como ão primo??....não deveria retornar sempre primo, se o while vai de 2 até o numero? Compartilhar este post Link para o post Compartilhar em outros sites
Athene 1 Denunciar post Postado Abril 13, 2005 Pq se você fizer assim: while(aux<=numero){}ele vai tentar dividir o número por ele mesmo e vai conseguir... Então div vai ter valor 1 e não zero. Mas isso é a maneira como o algoritmo foi implementado.... Para resolver isso você pode simplesmente tirar o igual e deixar o while assim: while(aux<numero){}Deve funcionar.... Beijos.... Compartilhar este post Link para o post Compartilhar em outros sites
Chan 0 Denunciar post Postado Abril 13, 2005 nossa eh verdedade, não tinha pensado nisso...que ASNO eu...ahahhahavaleu moça...beijos!!Chan Compartilhar este post Link para o post Compartilhar em outros sites