Programa
C++ que comprueba si dos números son amigos.
Dos números enteros positivos A, B se consideran amigos cuando la suma de los divisores propios de A es igual a B y la suma de los divisors propios de B es igual a A.
Por ejemplo, los números 220 y 284 son números amigos.
Los disisores de 220 son: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110. La suma de los divisores de 220 es 284.
Los divisores de 284 son: 1, 2, 4, 71 y 142. La suma de los divisores de 284 es 220.
Para comprobar si dos números son amigos solo intervienen los divisores propios. Los divisores propios no incluyen al propio número.
/*
*
* Programa C++
* Comprobar si dos números son amigos
*
*/
#include <iostream>
using namespace std;
int main()
{
//declaración de variables
int i,suma,a,b;
//introducir los números por teclado
cout << "Introduce primer numero:";
cin >> a;
cout << "Introduce segundo numero: ";
cin >> b;
//comprobar si son amigos
suma=0; //variable para guardar la suma de los divisores
for(i=1;i<a;i++) //i son todos los posibles divisores de a excepto él mismo
{
if(a%i==0) //si i es divisor de a
{
suma=suma+i; //se suma el divisor
}
}
if(suma==b) //si la suma de los divisores de a es igual a b
{
suma=0;
for(i=1;i<b;i++) //i son todos los posibles divisores de b excepto él mismo
{
if(b%i==0) //si i es divisor de b
{
suma=suma+i; //se suma el divisor
}
}
if(suma==a) //si la suma de los divisores de b es igual a a
cout << endl << "Amigos" << endl;
else
cout << endl << "No son amigos" << endl;
}
else //si la suma de los divisores de a no es igual a b
{
cout << endl << "No son amigos" << endl;
}
system("pause");
}