Dos números son amigos si la suma de los divisores del primer excepto
el mismo es igual al segundo y viceversa. Hacer un programa que pida dos
números por teclado y averigüe si son amigos. Emplear el método sumaDivisores,
que calcule la suma de los divisores de un número menos el propio número leído.
(220, 284) (17.296, 18.416) (9.363.584,
9.437.056)
import java.util.Scanner;
public class Ejercicio61 {
public static void main(String[] args) {
//Variables
int num1;
int num2;
//Inicializamos Scanner
@SuppressWarnings("resource")
Scanner reader = new Scanner(System.in);
//Empezamos el programa
System.out.println("Introduce el primer numero: ");
num1 = reader.nextInt();
System.out.println("Introduce el segundo numero: ");
num2 = reader.nextInt();
if( sonamigos(num1,num2) == true){
System.out.println("Los numeros " + num1 + " y " + num2 + " son amigos.");
}else{
System.out.println("Los numeros " + num1 + " y " + num2 + " no son amigos.");
};
//Comprobamos que finaliza por completo
System.out.print("END_OF_LINE");
}
public static int sumaDivisores(int n) {
int sumaDiv = 0;
for (int j = 1; j <= (n / 2); j++) {
if (n % j == 0) {
sumaDiv = sumaDiv + j;
}
}
return sumaDiv;
}
static boolean sonamigos(int num1, int num2) {
if ( num2 == sumaDivisores(num1)){
return true;
}if(sumaDivisores(num2) == num1){
return true;
}else{
return false;
}
}
}
No hay comentarios:
Publicar un comentario