Pages

jueves, 17 de enero de 2013

Determinar si dos números son amigos Codigo Fuente en C++

Problema
Implementar un algoritmo que determine si dos números son amigos.

Solución
Ingresamos dos números a los cuales les extraeremos sus divisores para luego determinar si estos números son amigos

Ejemplo
  • Entrada: 220  y 284
             Suma de Divisores 220:   1+2+4+5+10+11+20+22+44+55+110 = 284
             Suma de Divisores 284:   1+2+4+71+142 = 220
             Son amigos por que la suma de los divisores de un número es igual al otro número.
  • Salida: Son números amigos
Codigo Fuente en C++
#include <iostream>
using namespace std;
int suma(int N,int S){
    for(int i=2;i<N;i++){
            if(N % i==0){
                    S=S+i;
            }
    }
    return S;
}
int main(){
    int n1,n2;
    int sum1=1,sum2=1;
    cout<<"ingrese el primer numero"<<endl;
    cin>>n1;
    cout<<"ingrese el segundo numero"<<endl;
    cin>>n2;
    sum1=suma(n1,sum1);
    sum2=suma(n2,sum2);
    if((sum1==n2)&&(sum2==n1)){
        cout<<"los numeros "<<n1<<" y "<<
        n2<<" Si son numeros amigos";
    }else{
        cout<<"los numeros "<<n1<<" y "<<
        n2<<" No son numeros amigos";
    }
   return 0;
}

7 comentarios:

Paulita Love dijo...

Alguien podría realizar este mismo ejercicio en lenguaje C??

david1445 dijo...

#include
int suma(int N,int S){
for(int i=2;i<N;i++){
if(N%i==0){
S=S+i;
}
}
return S;
}
int main(){
int num1,num2;
int sum1=1,sum2=1;
printf("ingrese el primer numero \n");
scanf("%d",&num1);
printf("ingrese el segundo numero \n");
scanf("%d",&num2);
sum1=suma(num1,sum1);
sum2=suma(num2,sum2);
if((sum1==num2)&&(sum2==num1)){
printf("Los numeros %d y %d son amistosos \n",num1,num2);
}else{
printf("Los numeros %d y %d no son amistosos :( \n");
}
return 0;
}

carl gil dijo...

pro que me da un erros ?
int suma(int N,int S){
for(int i=2;i<N;i++){
if(N % i==0){
S=S+i;

Anónimo dijo...

Error es que el doctor te dejó nacer :3

josue ariel dijo...

Y en java como seria ?

Emanuel Agustin Ocampo dijo...
Este comentario ha sido eliminado por el autor.
luis sanchez dijo...

Será que me lo puedes resolver en lazarus

Publicar un comentario en la entrada