Números Primos

Publicado por Felipe Rezende 15/03/2006

[ Hits: 9.877 ]

Download main.cpp




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.

  



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

Algorítimo - Dia da semana

utilities_linux.h - Biblioteca com diversas funções para o Linux

Jogo Campo Minado

Conio.h para Linux (Nova versão)

Manipulação de letras maiusculas e minusculas


  

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


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts