Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

knightmr

código para verificar se um numero é primo

Recommended Posts

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

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

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

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

"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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.