0votos

Número perfecto en Java

por alvaro sanz llorente hace 1 año

Así lo he hecho

Un número perfecto es aquel que es igual a la suma de todos sus divisores positivos excepto el mismo.

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
import java.util.ArrayList; 
import java.util.Scanner; 
 
public class Numeroperfecto { 
 
    public boolean esPerfecto(long numero,ArrayList<Long>numeros) { 
        long suma = 0; 
         
        boolean esperfecto = false; 
        for (int f = 1; f <= numero; f++) { 
            if (numero % f == 0 && f != numero) { 
                suma += f; 
 
        if (numero == suma) { 
            esperfecto = true; 
             
            numeros.add(numero); 
        } else { 
            esperfecto = false; 
        return esperfecto; 
     
     
 
    public static void main(String[] args) { 
        Scanner sc = new Scanner(System.in); 
        ArrayList<Long>numeros=new ArrayList<Long>(); 
        long numero = 0; 
         
        String numeros1=""; 
        System.out.println("Introduce numero"); 
        numero = sc.nextLong(); 
         
        Numeroperfecto nd = new Numeroperfecto(); 
         
        for(int f=1;f<numero;f++){ 
        nd.esPerfecto(f,numeros) ; 
        System.out.println(numeros.get(numeros.size() -1)); 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.