Programa que encuentre numeros perfectos

Cerrado
NE26 - 28 oct 2009 a las 15:59
Koutsh Mensajes enviados 1 Fecha de inscripción domingo, 22 de enero de 2012 Estatus Miembro Última intervención domingo, 22 de enero de 2012 - 22 ene 2012 a las 17:55
Hola,necesito una solucion ana elaboracion de un programa que encuentre los tres primeros numeros perfectos?

pero en utilizando una sola tabla y hay tiene k aparecer ejemplo=



Los 3 primeros numeros perfectos.

6
28
496

ESTOS 3 DATOS EN UNA TABLA NECESITO EL CIclo el cual me desifre los 3 primeros numeros perfectos



espero respuesta gracias.....

4 respuestas

Hola este programa quizá pueda ayudarte, pero para sacar el 5to. número perfecto no funciona bien, tarde demasiado. Pruebalo a ver que pasa.
public class NumPerfecto{
private int num;
private int suma;
private int prob=0;
private int cont=0;
private String resul="";
public NumPerfecto(int n){
num=n;
}
private String Respuestas(){
while(cont<num){
prob++;
suma=0;
for(int i=1;i<=prob/2;i++){
if(prob%(i)==0){
suma+=i;
}
}
if(suma==prob){
cont++;
resul=resul+" "+Integer.toString(prob);
}
}
return resul;
}
public String getDet(){
return Respuestas();
}
public static void main(String arg[]){
NumPerfecto np=new NumPerfecto(4);/*Aqui puedes poner que numero quieres sacar, el 1ro, 2do, 3ro, y 4to, como dije para el quinto tarda mucho, y por lógica para los siguientes tardara mucho mas*/
System.out.println(np.getDet());
}
}
Esper que te ayude. Suerte.
3
gracias por el eporte muy bueno solo que no lo comprendo bn
2
Mishai Mensajes enviados 5 Fecha de inscripción miércoles, 28 de octubre de 2009 Estatus Miembro Última intervención miércoles, 28 de octubre de 2009 4
28 oct 2009 a las 16:37
Bueno como sabras tenes que basarte en la ecuacion de =(2^(p−1))*(2^p − 1)

pero P tiene que ser un Numero primo, por lo tanto primero tenes que sacar los primeros 3 numeros primos, sabes como sacarlos?
0
kousth .... hola, me puedde expicar por favor qe haace la varibale prob, y cont...'''''
estoy muy confundida!
gracias
-1
Koutsh Mensajes enviados 1 Fecha de inscripción domingo, 22 de enero de 2012 Estatus Miembro Última intervención domingo, 22 de enero de 2012
22 ene 2012 a las 17:55
¡Hola! Disculpa la demoooooooooora, es que no había visto tu comentario.
Bueno como dicen más vale tarde que nunca, aunque supongo que ya lo averiguaste...
En fin... Las variables enteras "prob" y "cont" sirven en este caso para:
- cont : Es un simple control, esta variable se inicializa en 0 (cero) y cada vez que encontremos un número perfecto se incrementará en 1 (uno), es así que cuando encontremos los primeros "n" números perfectos, el programa terminará. (FALSO en el ciclo WHILE)
- prob : Lo uso como posible número perfecto, es decir, esta variable irá incrementandose de uno en uno, buscando un número perfecto. Primero verificará si el "1" es perfecto, luego verificará el "2", luego el "3", etc., posteriormente verificará el "6", en este caso resulta ser número perfecto "cont" se incrementará, y pasará a verificar el "7". Es muy lento, a pesar de que los ordenadores actuales pueden procesarlo a grandes velocidades, este algoritmo no es el mejor; sin embargo como aprendizaje pasa, además seguro que tú puedes hacerlo mucho mejor.
Espero que se haya entendido... Saludos. Hasta la próxima, chau chau.
0