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
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
Consulta también:
- Numeros perfectos c++
- Numeros gratis telcel - Guide
- Excel columnas con numeros - Guide
- Numeros para llamar a claro - Guide
- Convertir numeros a letras en word - Guide
- Como saber mis números antiguos de celular - Foro Móviles/PDA/GPS
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.
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.
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
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?
pero P tiene que ser un Numero primo, por lo tanto primero tenes que sacar los primeros 3 numeros primos, sabes como sacarlos?
kousth .... hola, me puedde expicar por favor qe haace la varibale prob, y cont...'''''
estoy muy confundida!
gracias
estoy muy confundida!
gracias
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
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.
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.