Descrição
Retorna se número informado é primo ou não. Após estuda-lo você pode facilmente modifica-lo para que informe todos os primos dentro de um intervalo.
[ Download:
main.cpp ]
[
Enviar nova versão ]
[ Esconder código-fonte ]
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// Verifica se ha paremetros
if (!argv[1]){
printf("usage: Primos [numero]\n");
return(false);
}
int i, count = 0;
int num = atoi(argv[1]);
for (i = 1; i <= num; i++){
if (num % i == 0){
count++;
}
}
if (count > 2){
printf("Numero %i nao eh primo.\n", num);
} else {
printf("Numero %i eh primo.\n", num);
}
}
Scripts recomendados
C split
Menu animado
Infixa para Pós-fixa em C
[C] Raiz quadrada
Grafo
Comentários
[1] Comentário enviado por
humbhenri em 16/03/2006 - 21:09h:
A lógica está certa mas há algumas coisas a considerar. Entendendo a matemática que está por trás disso vc pode implementar um código mais eficiente. Por exemplo qualquer número não tem um divisor PRIMO maior do que sua raiz quadrada, tirando é claro o próprio número. Por exemplo para testar se 31 é primo o seu loop só precisaria de ir até a raiz quadrada de 31, que como não é inteira vc arredonda, isto é o seu loop só precisaria ir de 1 até 5.
[2] Comentário enviado por
felipe_rezende em 19/03/2006 - 23:50h:
Obrigado pelo comentário humbhenri, é uma boa solução a sua! =)