Divisores de um inteiro positivo em C++

Publicado por - (última atualização em 01/02/2019)

[ Hits: 3.307 ]

Homepage: -

Download divisores.cpp

Download 1548905996.divisores.cpp (versão 2)




Um pequeno script para determinar os divisores de um inteiro positivo em linguagem C++. Pode ser executado normalmente por ./nome-do-binario ou ./nome-do-binario [número].

Exemplos:

$ ./divisores 35
Os divisores de 35 são: 1, 5, 7 e 35

$ ./divisores 91
Os divisores de 91 são: 1, 7, 13 e 91

$ ./divisores
Digite um número inteiro positivo: 88
Os divisores de 88 são: 1, 2, 4, 8, 11, 22, 44 e 88

  



Versões atualizadas deste script

Versão 2 - Enviado por - em 31/01/2019

Changelog: Corrigido um "bug" na mensagem que o programa exibe quando digitado o valor 0. Obrigada ao senhor Paulo, tive uma grande falta de atenção! =)

Download 1548905996.divisores.cpp


Esconder código-fonte

#include <iostream>
using namespace std;

void divisores(unsigned int inteiro);

int main(int argc, char **argv){
    if(argc == 1){
        cout << "Digite um número inteiro positivo: ";
        unsigned int inteiro;
        cin >> inteiro;

        divisores(inteiro);
    }

    else{
        divisores(atoi(argv[1]));
    }

    return 0;
}

void divisores(unsigned int inteiro){
    if(inteiro == 1){
        cout << "1 é divisível somente por 1" << endl;
    }

    else if(inteiro == 0){
        cout << "0 não possui divisores" << endl;
    }
    
    else{
        cout << "Os divisores de " << inteiro << " são: ";

        for(unsigned int i = 1; i < inteiro; i++){
            if(inteiro % i == 0)
                cout << i << ", ";
        }
        cout << "\b\b e " << inteiro << endl;
    }
}

Scripts recomendados

Números Primos

Sequência de Fibonacci em C

Lista encadeada de classe

Url visitor

Teste de desempenho com números primos em C


  

Comentários
[1] Comentário enviado por paulo1205 em 30/01/2019 - 09:10h

A mensagem que diz que zero não tem divisores me parece estranha. Embora seja verdade que zero não possa ser dividido por ele mesmo, qualquer outro número natural pode dividir zero, produzindo resto zero.

Outra coisa: quando se acha um divisor, necessariamente se encontra também outro. Se em vez do operador “%” você usar a função div(), vai obter simultaneamente quociente e resto, e, se o resto for igual a zero, você poderá adicionar à lista de divisores do número tanto o divisor que acabou de ser usado quanto o quociente produzido.

[2] Comentário enviado por BiaMonteiro em 31/01/2019 - 01:36h

Quanto ao 0, pior que é verdade kkkkkkkkkkkkkkk, não havia reparado nisso!
Muito obrigada pelos comentários =) Não havia ouvido falar da função div(). Ela faz parte de qual cabeçalho?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts