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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Programa Numeros Perfectos C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa Numeros Perfectos C++  (Leído 3,866 veces)
HIDE_95

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Programa Numeros Perfectos C++
« en: 4 Agosto 2015, 20:31 pm »

Buenas compañeros. Tengo una pequeño problema en el que me he quedado atrancado .... Se trata de este ejercicio:
  Un numero perfecto es un numero natural cuyo valor coincide con la suma de todos sus divisores propios,
es decir todos sus divisores menores que el (incluido el 1). Por ejemplo, el numero 28 se dice que es un
numero perfecto porque su valor coincide con la suma de sus divisores: 28 = 1 + 2 + 4 + 7 + 14
.
  Escribir un programa en C++ que lea por teclado un numero de cifras (mayor que 1) e imprima por pantalla el primer numero perfecto con ese numero de cifras o, en caso de que no exista, imprima un
mensaje indicando que no existe un numero perfecto con ese numero de cifras.


Aqui esta el algoritmo que yo cree , pero no me funciona. Me deja compilarlo pero al poner el numero de cifras deseado no me saca nada por pantalla... Podriais indicarme un poco en que he fallado , gracias :)

Código
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std ;
  5.  
  6. int main ()
  7. {
  8. unsigned n , b , a , perf ;
  9. cout << "Introduzca el numero de cifras: " ;
  10. cin >> n ;
  11. b = pow ( 10 , n) - 1 ;
  12. perf = 0 ;
  13. for ( unsigned i = pow(10 , (n-1)) ; i <= b ; i++ )
  14. {
  15. for (unsigned j = 2 ; j <= i ; j++ )
  16. {
  17. if ( (i % j) == 0 )
  18. {
  19. a = i / j ;
  20. perf = a + perf ;
  21.  
  22. }
  23. }
  24. if ( perf == i )
  25. {
  26. cout << "Numero perfecto: " << perf << endl ;
  27.  
  28. }
  29. }
  30.  
  31. }


Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 4 Agosto 2015, 20:39 pm por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Programa Numeros Perfectos C++
« Respuesta #1 en: 4 Agosto 2015, 21:06 pm »

lo de la linea 12

Código:
perf = 0 ;

está fuera del ciclo... así que nunca se reiniciará... debe reiniciarse a 0 con cada nuevo "i" (es decir pasa linea 13 para linea 12 y linea 12 para 13)


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
HIDE_95

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: Programa Numeros Perfectos C++
« Respuesta #2 en: 4 Agosto 2015, 21:34 pm »

Muchisimas gracias... Llevo toda la tarde buscandole el fallo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa en C que imprime los primeros m números perfectos
Programación C/C++
ERIK546 3 22,408 Último mensaje 29 Junio 2012, 21:36 pm
por ERIK546
Números perfectos (lenguaje C) « 1 2 3 »
Programación C/C++
NOB2014 22 12,634 Último mensaje 30 Septiembre 2014, 04:34 am
por rir3760
[C++] [?] Numeros perfectos
Programación C/C++
-JohnWalls 2 3,069 Último mensaje 7 Diciembre 2014, 20:33 pm
por -JohnWalls
Numeros amigos y numeros perfectos programa en C
Programación C/C++
estudiante_1 2 5,630 Último mensaje 11 Agosto 2015, 23:51 pm
por estudiante_1
Programa para calcular numeros perfectos entre 1 y N
Programación C/C++
tokyo13 3 5,300 Último mensaje 27 Febrero 2019, 22:38 pm
por tokyo13
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines