Exibe quantos números perfeitos foram digitados
Publicado por summerson de souza goncalves (última atualização em 17/10/2011)
[ Hits: 6.643 ]
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...
}
Agenda eletronica com banco de dados em arquivo texto
Nenhum comentário foi encontrado.
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Criação de diretórios e aplicação de restrições de acesso no Linux
Instalando partes faltantes do Plasma 6
ClamAV, um montão de coisas suspeitas .... (0)
Script instalaçao gateway RAK831 (2)









