Divisores de um inteiro positivo em C++
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
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
Descrição
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
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
#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;
}
}
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.