Java - problema java numeros amigos

 
Vista:

problema java numeros amigos

Publicado por Ivan (2 intervenciones) el 26/10/2017 09:33:02
Buenas, queria pedir ayuda con este programa, ya que tengo la base hecha pero no se como continuar, me pide que con un programa en java se saque por pantalla los 4 primeros numeros amigos (un numero es amigo de otro si los divisores del primero suman el segundo y viceversa), teniendo como base el siguiente programa hecho por mi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.util.Scanner;
 
public class NumerosAmigos {
    public static void main(String[] args) {
        int i=1;
        int j=1;
        int suman1=0;
        int suman2=0;
        Scanner input = new Scanner(System.in);
        System.out.println("Introduce primer número: ");
        int n1 = input.nextInt();
        System.out.println("Introduce segundo número: ");
        int n2 = input.nextInt();
        while (i<n1){
             if(n1%i==0){
                suman1=suman1+i;
             }
             i=i+1;
        }
        while (j<n2){
        	if(n2%j==0){
        		suman2=suman2+j;
        	}
        	j=j+1;
        }
        if(n1==suman2 && n2==suman1){
        	System.out.println("Son amigos");
        } else{
        	System.out.println("No son amigos");
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 349
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

problema java numeros amigos

Publicado por Andrés (340 intervenciones) el 29/10/2017 15:16:51
La verdad no comprendí tu código, en el sentido de la mención de mostrar los 4 primeros número amigos, y que en tú código pidas valores, así que me concentré en mostrar los 4 primeros amigos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import java.util.ArrayList;
import java.util.List;
 
class ParAmigo {
 
	private long a;
	private long b;
 
	public ParAmigo(long a, long b) {
		this.a = a;
		this.b = b;
	}
 
	public long getA() {
		return a;
	}
 
	public void setA(long a) {
		this.a = a;
	}
 
	public long getB() {
		return b;
	}
 
	public void setB(long b) {
		this.b = b;
	}
 
	@Override
	public String toString() {
		return a+" "+b;
	}
 
}
 
class NumerosAmigos {
 
	public final List<ParAmigo> buscarAmigos(final int limite) {
 
		List<ParAmigo> parAmigos = new ArrayList<ParAmigo>();
 
		final long INICIO = 1;
		final long FIN = Long.MAX_VALUE;
 
		int counter = 0;
 
		for (long i = INICIO; counter < limite && i <= FIN; i++) {
 
			long j = sumaDivisoresPropios(i);
 
			if (i < j && j <= FIN && sumaDivisoresPropios(j) == i) {
 
				counter++;
				parAmigos.add(new ParAmigo(i,j));
 
			}
 
		}
 
		return parAmigos;
 
	}
 
	public final long sumaDivisoresPropios(final long numero) {
 
		long suma = 1;
 
		for (int i = 2; i < numero / 2 + 1; i++) {
			if (0 == numero % i) {
				suma += i;
			}
		}
 
		return suma;
 
	}
 
}
 
public class NumerosAmigosApp {
 
	public static void main(String[] args) {
 
		NumerosAmigos numerosAmigos = new NumerosAmigos();
		List<ParAmigo> parAmigos = numerosAmigos.buscarAmigos(4);
 
		for(ParAmigo parAmigo : parAmigos) {
			System.out.println(parAmigo.toString());
		}
 
	}
 
}

Screenshot-from-2017-10-29-08-21-31
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar