0votos

primos perfectos en Java

por alvaro sanz llorente hace 1 año

Así lo he hecho

Crear una función que determine si un numero es un primo perfecto o no. El termino primo-prefecto lo invente yo, así que si lo buscan por internet, no lo encontraran, por lo cual, lean la explicación.

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
public class primosperfectos { 
     
    public static boolean esprimo(int f){ 
        boolean esnumeroprimo=false; 
        int contprimo=0; 
         
        for(int c=1;c<=f;c++){ 
            if(f%c==0){ 
                contprimo++;     
         
        if(contprimo==2){ 
            esnumeroprimo=true; 
        }else{ 
            esnumeroprimo=false;     
         
        return esnumeroprimo; 
         
 
    public static boolean cadadigitoesprimo(int f){ 
        boolean cadadigitonumeroesprimo=false; 
        String digitos=String.valueOf(f); 
        int cont=0; 
         
        for(int g=0;g<digitos.length();g++){ 
            if(esprimo(Integer.parseInt(""+digitos.charAt(g)))){ 
                cont++;     
         
        if(cont==digitos.length()){ 
            cadadigitonumeroesprimo=true; 
        }else{ 
            cadadigitonumeroesprimo=false; 
         
        return cadadigitonumeroesprimo; 
     
    public static boolean sumadedigitosesprimo(int f){ 
        boolean sumadedigitonumerosesprimo=false; 
        String numeros=String.valueOf(f); 
        int suma=0; 
         
         
        for(int v=0;v<numeros.length();v++){ 
            suma+=Integer.parseInt(""+numeros.charAt(v)); 
         
        if(esprimo(suma)==true){ 
            sumadedigitonumerosesprimo=true; 
        }else{ 
            sumadedigitonumerosesprimo=false; 
         
         
        return sumadedigitonumerosesprimo; 
 
    public static void main(String[] args) { 
         
         
        for(int f=1;f<=100000;f++){ 
            if(esprimo(f)==true && cadadigitoesprimo( f)==true && sumadedigitosesprimo(f)==true){ 
                System.out.println(f); 
             
         
 
 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.