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
-
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
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]);
}
}
}
-
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)
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