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;
}

9 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

Anónimo dijo...

na

Anónimo dijo...

lo tienen en matlab depronto , seria genial amigos

Publicar un comentario