Exibe quantos números perfeitos foram digitados

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

[ Hits: 6.329 ]

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

Angelinux Scripts - Palpite para Megasena em C

Tele Sena

NCURSES - Parte III

Método de Newton-Raphson

Matrizes esparsas, produto por escalar e produto por um vetor


  

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