Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/11/2011, 10:20
Avatar de juanalbertosk8
juanalbertosk8
 
Fecha de Ingreso: noviembre-2011
Ubicación: Málaga, Spain, Spain
Mensajes: 10
Antigüedad: 12 años, 5 meses
Puntos: 0
Problema numeros amigos

Buenas el problema me pide que dado un intervalo me diga los numeros amigos que hay en ese intervalo.


Código C++:
Ver original
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int divisor(int a){
  5. int x=1, y=0, r;
  6.     for(int cont=1;cont<a;cont++){
  7.         if(a%x == 0 and x!=a){
  8.             r=a%x;
  9.             x++;
  10.         }
  11.         else{
  12.             y=y+r;
  13.             x++;
  14.         }
  15.     }
  16.     return y;
  17.  
  18. }
  19. int divisor1(int b){
  20.     int w=1, z=0, t;
  21.     for(int cont=1; cont<b; cont++){
  22.         if(b%w == 0 and w!=b){
  23.             t=b%w;
  24.             w++;
  25.         }
  26.         else{
  27.             z=z+t;
  28.             w++;
  29.         }
  30. }
  31. return z;
  32. }
  33.  
  34. int main() {
  35.     int n, m, a, b;
  36.     cout<<"Introduce un intervalo dando dos numeros: ";
  37.     cin>>n>>m;
  38.     a=n;
  39.     b=n++;
  40.     for(int i=1;i<(m-n);i++){
  41.     if((divisor(a) == b) && (divisor1(b)==a)){
  42.         a++;
  43.     cout <<"El numero "<<a<<" es amigo del numero "<<b<<endl;
  44.     }
  45.         else{
  46.             a++;
  47.             b++;
  48.         }
  49.     }
  50.     return 0;
  51. }

Me podrian decir donde fallo o darme una posible solucion. Gracias