Un número se considera perfecto si la suma de sus divisores es igual al número. Por ejemplo, los divisores de 6 son 1, 2, 3. Dado que, 1+2+3 = 6, 6 es un número perfecto.
Escribir un programa que pida al usuario un número positivo, y decida si es perfecto o no. El programa debe crear 2 funciones:
1. esPerfecto(int) que devuelve verdadero o falso si el número es perfecto
2. esDivisor(int a , int b) que devuelve verdero o falso segun si a es divisor de b, es decir, esDivisor(2, 6) devuelve verdadero, pero esDivisor(2, 5) devuelve falso.
[MOD] Usar las etiquetas GesHi, para publicar código.
esto es lo que tengo
me pueden ayudar a ver el error en la funcion esDivisor
y como hacer para que al rato de imprimir aparezca verdadero y falso en vez de 0 y 1
Escribir un programa que pida al usuario un número positivo, y decida si es perfecto o no. El programa debe crear 2 funciones:
1. esPerfecto(int) que devuelve verdadero o falso si el número es perfecto
2. esDivisor(int a , int b) que devuelve verdero o falso segun si a es divisor de b, es decir, esDivisor(2, 6) devuelve verdadero, pero esDivisor(2, 5) devuelve falso.
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;
int LeerEnteroPositivo_()
{
int a=0;
while(a<=0)
cin>>a;
return a;
}
int EsPerfecto(int a)
{
int suma=0;
for (int i=1;i<a;i++)
if(a%i==0)
suma+=i;
return suma;
}
bool Perf (int a)
{
return (EsPerfecto(a)==a);
}
bool esDivisor (int b, int c)
{
int b = 0;
int c = 0;
return ((b/c)%=0)
}
int main()
{
int numeroA;
int a;
int b;
cout<<"Dame un numero entero positivo:"<<endl;
numeroA = LeerEnteroPositivo_ ();
cout << " Es perfecto el primer numero ? ( 0= Falso, 1=Verdadero)"<< Perf(numeroA) << endl;
cin>> a;
cin>> b;
cout << "Es divisor?" << esDivisor (int a, int b) << endl;
}
[MOD] Usar las etiquetas GesHi, para publicar código.
esto es lo que tengo
me pueden ayudar a ver el error en la funcion esDivisor
y como hacer para que al rato de imprimir aparezca verdadero y falso en vez de 0 y 1