elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  programa que determine si numero es perfecto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programa que determine si numero es perfecto  (Leído 19,188 veces)
jon_18

Desconectado Desconectado

Mensajes: 2


Ver Perfil
programa que determine si numero es perfecto
« en: 13 Agosto 2012, 22:54 pm »

Hola, soy nuevo en el foro.

hasta ahora estoy empezando a conocer todo lo que es el lenguaje en c++, y necesito que por favor me ayuden a hacer un programa que determine si un numero es perfecto o no, y debo realizarlo aplicando el concepto de recursividad.

agradezco sus colaboraciones, gracias.


En línea

CSQCasimiro

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: programa que determine si numero es perfecto
« Respuesta #1 en: 14 Agosto 2012, 00:13 am »

si estas empezando, te doy un consejo cuando te encontras con un problema, antes de programar, pensa, "yo como ser humano,¿ como lo resuelvo ?" , una ves que ya lo tenes, solo estructuralo y dale un "paso a paso" , usando decisiones y repeticiones, y listo.


En línea

"Mejora el Algoritmo, no el Código"
"Buscando todos los días ser mejor que ayer"
s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: programa que determine si numero es perfecto
« Respuesta #2 en: 14 Agosto 2012, 01:45 am »

Tampoco esta demas antes que nada leer la Wikipedia, o algun sitio que te muestre ejemplos de como saberlo y ya de ahi razonarlo y ver como lo harias en codigo, tambien en la wikipedia algunas veces al final muestran como hacerlo en codigo en diferentes lenguajes sino esta el que ocupas solo es cuestion de razonar elque te muestran y pasarlo al que tu deseas ...

Buscar no te matara ;D
En línea

jon_18

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: programa que determine si numero es perfecto
« Respuesta #3 en: 14 Agosto 2012, 02:11 am »

tampoco es que no tenga ni las mas minima idea de como hacerlo, sino que no me salia y ps debo hacer 10 programas mas, y pasarlos a mano, por eso les pido la ayuda.
En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: programa que determine si numero es perfecto
« Respuesta #4 en: 14 Agosto 2012, 03:24 am »

si tienes la idea entonces pon aqui lo que hiciste y ahi si te podemos ayudar en lo que este mal, mas no te podemos dar el codigo asi nomas, porque no harias nada ... aqui estamos para ayudar mas no para hacerle las cosas a los demas desde 0.

Coloca aqui lo que hiciste y asi ya poder ayudarte.
En línea

Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: programa que determine si numero es perfecto
« Respuesta #5 en: 15 Agosto 2012, 17:28 pm »

Como es un algoritmo matemático relativamente sencillo, el programa es "traducir" directamente la expresion

Definamos el número perfecto como todo numero tal que es igual a la suma de sus divisores positivos.

Vayamos desgranando:

Lo único que hay que comprobar  es que el número sea positivo, y luego, que sea la suma de sus divosres positivos:

-> Que sea positivo:

Código
  1. if(num > 0){
  2.  
  3. }

-> Que sea la suma de sus divisores: Esto es el sumatorio desde num-1 hasta 1, tal que num%i==0

Código
  1. int sumatorio = 0;
  2. for( int i = num-1;num >= 1;i--){ /* Sumatorio desde num-1 hasta 1*/
  3. if(num%i){
  4. sumatorio += i;
  5. }
  6. }

La funcion devolvera el valor 1 si el numero es perfecto, y 0 si no lo es:

Código
  1. if(sumatorio==num){
  2. return 1;
  3. }else{
  4. return 0;
  5. }

Y ahora jutamos todo:

Código
  1. #include <stdio.h>
  2.  
  3. int checkPerfect(int num);
  4.  
  5. int main(){
  6.  
  7. int num;
  8. int isPerfecto;
  9. printf("Introduzca un numero:\n");
  10. scanf("%d",&num);
  11. isPerfecto = checkPerfect(num);
  12. if(isPerfecto==1){
  13. printf("El número es perfecto");
  14. }else{
  15. printf("El numero no es perfecto");
  16. }
  17. return 0;
  18. }
  19.  
  20. int checkPerfect(int num){
  21. if(num > 0){
  22. int sumatorio = 0;
  23. for( int i = num-1;num >= 1;i--){ /* Sumatorio desde num-1 hasta 1*/
  24. if(num%i==0){ /* Si es divisor, sumamos al total*/
  25. sumatorio += i;
  26. }
  27. }
  28. }else{
  29. return 0;
  30. }
  31.  
  32. if(sumatorio==num){ /* Si el total del sumatorio es igual al número, el número es perfecto*/
  33. return 1;
  34. }else{
  35. return 0;
  36. }
  37. }

( El código puede contenter errores, está a bloc de notas y no tengo un compilador de C ahora mismo)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda!! se buska el programa perfecto!
Multimedia
MADRIDISTA 2 1,744 Último mensaje 25 Junio 2005, 16:16 pm
por MADRIDISTA
Programa para la adivinación de un numero.
Programación C/C++
gortes 4 3,920 Último mensaje 21 Octubre 2012, 13:56 pm
por za.asi
Escribir un programa que determine si un año es bisiesto en c++
Ejercicios
luzlazul 4 11,337 Último mensaje 6 Agosto 2013, 23:05 pm
por Alien-Z
[RETO] Determinar Número Perfecto « 1 2 3 »
Programación Visual Basic
Miseryk 20 9,114 Último mensaje 8 Noviembre 2013, 02:24 am
por rob1104
numero perfecto
Programación C/C++
deberesa123 3 2,581 Último mensaje 21 Abril 2015, 17:22 pm
por eferion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines