Exibe quantos números perfeitos foram digitados

Publicado por summerson de souza goncalves (última atualização em 17/10/2011)

[ Hits: 6.316 ]

Download 4.cpp




Script com comentários e fácil de entender.

  



Esconder código-fonte

/*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...
}                                    
                                         
      
              

Scripts recomendados

Função que converte números decimais em binários

Gerando uma "number list" de 6 digitos

Números Pseudos Aleatórios

Retirar ocorrências de uma substring dentro de uma string

Comando strieql


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts