tengo que hacer este programa en c++ podrian ayudarme ?
Un número perfecto es aquel que es igual a la suma de todos sus divisores
positivos excepto el mismo. El primer número perfecto es el 6 ya que sus divisores son
1, 2 y 3 y 6=1+2+3. Escribir un programa que muestre el mayor número perfecto que sea
menor a un número dado por el usuario
resultado:
Entrada: 8
Salida: RESULTADO = 6
Entrada: 400
Salida: RESULTADO = 28
Respuestas
Respuesta dada por:
1
#include <iostream>
using namespace std;
bool Perfecto(int);
int main(int argc, char *argv[])
{
int n=0,mayor=0;
cout<<"Numero: ";
cin>>n;
for(int i=1;i<=n;i++)
{
if(Perfecto(i))
{
if(i>mayor)
{
mayor=i;
}
}
}
cout<<"Salida: "<<mayor<<endl;
return 0;
}
bool Perfecto(int num)
{
int s=0;
for(int i=1;i<num;i++)
{
if(num%i==0)
{
s+=i;
}
}
if(s==num)
{
return true;
}
else
{
return false;
}
}
Adjuntos:
Leiasawyer:
Hola
Preguntas similares
hace 3 años
hace 3 años
hace 6 años
hace 6 años
hace 8 años
hace 8 años