Exibe quantos números perfeitos foram digitados
Publicado por summerson de souza goncalves (última atualização em 17/10/2011)
[ Hits: 6.687 ]
Script com comentários e fácil de entender.
/*Construa um algoritmo que possa entrar com vários números
positivos e imprima quantos números são perfeitos
(Um número é perfeito se a soma de seus divisores exceto
ele é igual a ele).*/
#include<conio.h>
#include<iostream>
using namespace std;
int main()
{
int n ,x,somadiv,p(0);
system("color F0"); //altera fonte de visualização para fundo branco e letra preta
cout<<"Digite um numero ou 0 para sair"<<endl;
cin>> n;
while(n==1)// se o usuário digitar 1 ele nao faz o calculo e pede para digitar novamente
{
cout<<"O numero 1 nao e um numero perfeito";
cout<<"\nDigite um numero ou 0 para sair"<<endl;
cin>> n;
}
while(n<0) // se digitar um numero negativo ele avisa
{
cout<<"\nEste nao e um numero positivo."<<endl;
cout<<"\nDigite um numero ou 0 para sair"<<endl;
cin>> n;
}
while(n!=0)
{
somadiv=0; // não declarar como variável global pois ele volta a zero.
for(x=1;x < n ;x++) //faz a divisao por x até ser menor que o n
{
if(n%x==0)
{
somadiv+=x; //quando o divisor é igual a zero ele
} //pega o divisor e vai somando
}
if(somadiv==n) //o numero acima é igual ao n entao ele é perfeito
{
p++; //soma quantidade de vezes que
}
cout<<"\nDigite um numero ou 0 para sair"<<endl;
cin>> n;
}
cout<<"\nQuantidade de numeros perfeitos digitados: "<<p<<endl;
getch(); // poderia colocar cin.get() e retirar a conio.h,só uma brincadeira...
}
CalDOS - 60 funções em uma calculadora
Nenhum comentário foi encontrado.
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Linux Mint: Zram + Swapfile em Btrfs
O widget do Plasma 6 Área de Notificação
Após todos esses anos... youtube! (4)
[Resolvido] Conselho distribuiçao brasileira (14)









