Pular para o conteúdo

Números Primos

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.
Felipe Rezende felipe_rezende
Hits: 10.286 Categoria: C/C++ Subcategoria: Miscelânea
  • Download
  • Nova versão
  • Indicar
  • Denunciar

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);
    }  

}

Argv e Argc

Super Thiagout (Breakout) - O Jogo

Testar o melhor método de organização C (inserção, bolha e shell-sort)

Campo Elétrico do Quadripolo

A - Comando Strcat

#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! =)

Contribuir com comentário

Entre na sua conta para comentar.