Exibe quantos números perfeitos foram digitados
Publicado por summerson de souza goncalves (última atualização em 17/10/2011)
[ Hits: 6.588 ]
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...
}
Funções de soma e subtração de matrizes alocadas dinamicamente
Integração numérica - Método da Quadratura Gaussiana
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Programa fora de escala na tela do pc (7)
Fedora KDE plasma 42 X Módulo de segurança BB (Warsaw-2) (1)
O programa assinador digital (1)









