Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Siguiente num perfecto al 28

Estas en el tema de Siguiente num perfecto al 28 en el foro de C/C++ en Foros del Web. Si alguien me pudiera ayudar se lo agradecería ya que no se donde está el fallo... #include<iostream> using namespace std; int sum=0, num=29, num1, i, ...
  #1 (permalink)  
Antiguo 25/12/2011, 14:15
 
Fecha de Ingreso: diciembre-2011
Mensajes: 1
Antigüedad: 12 años, 4 meses
Puntos: 0
Exclamación Siguiente num perfecto al 28

Si alguien me pudiera ayudar se lo agradecería ya que no se donde está el fallo...

#include<iostream>
using namespace std;
int sum=0, num=29, num1, i, conta=0, perfecto;
int main(){

while(conta<2){

for(i=2; i<=num; i++){

if (num%i==0){
num1=num/i;
sum=sum+num1;}}

if (num==sum){
perfecto=num;
conta++;}
num++; }

cout<<"El numero perfecto que sigue al 28 es: "<<perfecto<<endl;

system ("Pause");
return 0;}
  #2 (permalink)  
Antiguo 01/01/2012, 19:14
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Sonrisa Respuesta: Siguiente num perfecto al 28

Basado en tu implementación esta sería el código que debe funcionar.

Código C++:
Ver original
  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int sum, num=29, i, conta=0, perfecto;
  5. while(conta<1){
  6.   sum=1;
  7.   for(i=2; i<num; i++){
  8.     if (num%i==0){
  9.        sum+=i;
  10.     }
  11.   }
  12.  
  13.   if (num==sum){
  14.     perfecto=num;
  15.     conta++;
  16.   }
  17.   num++;
  18. }
  19.  
  20. cout<<"El numero perfecto que sigue al 28 es: "<<perfecto<<endl;
  21.  
  22. system ("Pause");
  23. return 0;}
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:08.