Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: crisnar456 en 19 de Noviembre 2014, 02:34

Título: problema algoritmo netbeans Java determinar si un número es primo o es perfecto
Publicado por: crisnar456 en 19 de Noviembre 2014, 02:34
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]);
}

}
}

   

   
Título: Re:problema algoritmo netbeans Java determinar si un número es primo o es perfecto
Publicado por: Sixtoex en 19 de Noviembre 2014, 10:51
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