Alguien me puede decir como hacer el programa de numeros amigos en forma recursiva, en java..???
Dos números enteros positivos A y B son números amigos si la suma de los divisores propios de A es igual a B y la suma de los divisores propios de B es igual a A.
Los divisores propios de un número incluyen la unidad pero no el propio número.
Un ejemplo de números amigos son los números 220 y 284. Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110. La suma de los divisores propios de 220 da como resultado 284 Los divisores propios de 284 son 1, 2, 4, 71 y 142. La suma de los divisores propios de 284 da como resultado 220. Por lo tanto 220 y 284 son amigos.
aca les dejo el codigo.
public class NumerosAmigos { public static void main(String[] args) { int i,suma=0, n1, n2; Scanner sc = new Scanner(System.in); System.out.print("Introduce primer número: "); n1 = sc.nextInt(); System.out.print("Introduce segundo número: "); n2 = sc.nextInt(); for(i=1;i<n1;i++){ // for para sumar todos los divisores propios de n1 if(n1%i==0){ suma=suma+i; } } // si la suma de los divisores de n1 es igual a n2 if(suma==n2){ suma=0; for(i=1;i<n2;i++){ // sumo los divisores propios de n2 if(n2%i==0){ suma=suma+i; } } // si la suma de los divisores de n2 es igual a n1 if(suma==n1){ System.out.println("Son Amigos"); }else{ System.out.println("No son amigos"); } } else{ System.out.println("No son amigos"); } } }
Alguien me puede decir como hacer el programa de numeros amigos en forma recursiva, en java..???
Dos números enteros positivos A y B son números amigos si la suma de los divisores propios de A es igual a B y la suma de los divisores propios de B es igual a A.
Los divisores propios de un número incluyen la unidad pero no el propio número.
Un ejemplo de números amigos son los números 220 y 284.
Los divisores propios de 220 son 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110.
La suma de los divisores propios de 220 da como resultado 284
Los divisores propios de 284 son 1, 2, 4, 71 y 142.
La suma de los divisores propios de 284 da como resultado 220.
Por lo tanto 220 y 284 son amigos.
aca les dejo el codigo.
public class NumerosAmigos {
public static void main(String[] args) {
int i,suma=0, n1, n2;
Scanner sc = new Scanner(System.in);
System.out.print("Introduce primer número: ");
n1 = sc.nextInt();
System.out.print("Introduce segundo número: ");
n2 = sc.nextInt();
for(i=1;i<n1;i++){ // for para sumar todos los divisores propios de n1
if(n1%i==0){
suma=suma+i;
}
}
// si la suma de los divisores de n1 es igual a n2
if(suma==n2){
suma=0;
for(i=1;i<n2;i++){ // sumo los divisores propios de n2
if(n2%i==0){
suma=suma+i;
}
}
// si la suma de los divisores de n2 es igual a n1
if(suma==n1){
System.out.println("Son Amigos");
}else{
System.out.println("No son amigos");
}
}
else{
System.out.println("No son amigos");
}
}
}