Autor Tema: problema algoritmo netbeans Java determinar si un número es primo o es perfecto  (Leído 8616 veces)

crisnar456

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
hola tengo que digitar un vector a de 5 elementos que me muestre un vector m donde sea true si el numero es primo o perfecto, y false si es lo contrario el algoritmo esta bien con pero a la hora de reconocer un perfecto muestra el resultado muchas veces y no se almacena el true alguien que me ayude a corregirlo por favor

Código: [Seleccionar]
 


package ejercisio3;
import java.util.Scanner;
public class Ejercisio3 {

   
    public static void main(String[] args) {
       int A[],j,acum=0;

A = new int[5];
               
                for(j=0;j<5;j++)
                {
                Scanner sc = new Scanner(System.in);
                System.out.println("digite digito ");
               
                 A[j]=sc.nextInt();
                }
               
boolean[] M = new boolean[20];
int cont = 0;
int indice = 0;
int resultado = 0;
int time = 0;
for(int i = 1; i <= 100;i++){


if(time== 5){
break;
}

resultado = A[indice] % i;
if(resultado == 0){
cont++;
                         acum=acum+i;
}

if(cont == 2 && i == 100){
System.out.println(A[indice]+ " es PRIMO");
M[indice] = true;
                 }
                 else
                 
                          if(acum==A[indice])
                             
                         {
                             System.out.println(A[indice]+ " es perfecto ");
                             M[indice] = true;
                         }
                         
                 
                 
if(cont > 2 && i == 100){
System.out.println(A[indice]+ " NO es PRIMO");
M[indice] = false;
                         
                       
                         }           
                           

if(i == 100){
i = 0;
indice++;
time++;
cont = 0;
                                 acum=0;       
}


}
for(int i = 0;i<5;i++){
System.out.println(" A "+A[i]+" es "+M[i]);
}

}
}

   

   
« Última modificación: 19 de Noviembre 2014, 07:56 por Alex Rodríguez »

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Creo que vi lo de numero perfecto, pero al día siguiente desaparecio en el ejercicio del numero primo que te hice :D ??? (el ejercicio no esta echo con el perfecto)

Bueno mira creo recordar que en esta línea que pusistes solo te permite numeros del 1 al 100 ponerlo en el vector si pones por ejemplo 355, no te lo dice bien.Entonces modifica esta línea: (fue error mio, no modifique el código,sorry)
Código: [Seleccionar]
if(cont <=2 && i == 100){
Bueno y ya una vez arreglado eso:

6 es un número perfecto porque sus divisores propios son 1, 2 y 3; y 6 = 1 + 2 + 3

Es decir practicaménte es LO MISMO.

28 = 1 + 2 + 4 + 7 + 14  (28, es un numero perfecto)

Entonces imagina, que tienes este array:

int[] A = {33,22,44,55,3}

- Tienes que recoger el ARRAY 1 a 1  con un for
-Tienes que hacer un for anidado, similar como el del numero primo

practicamente es lo mismo, incluso puedes modificar el código ya echo que te hice y añadirle un par de líneas mas con modificar un par de condiciones ya lo tienes

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".