• Viernes 15 de Noviembre de 2024, 07:08

Autor Tema:  Código de suma de divisores?  (Leído 5112 veces)

Kenz_M

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Código de suma de divisores?
« en: Viernes 4 de Marzo de 2011, 20:46 »
0
Lo que necesito es que el programa me pregunte si deseo ingresar otro numero y si ingreso un numero negativo que finalice el programa, pero ya no se como hacerlo. Ya intente meterlo en el ciclo pero no me funciona asi.

Código: C
  1. #include <iostream.h>
  2. #include <conio.h>
  3.  
  4. int main()
  5.  
  6. {
  7.    int numero,suma;
  8.  
  9.    cout<< "ESTE PROGRAMA CALCULA LA SUMA DE LOS DIVISORES DE UN NUMERO"<<endl<<endl;
  10.    cout << "Introdusca un numero: ";
  11.    cin >> numero;
  12.    cout<<endl<<endl;
  13.    cout<<"Los divisores del numero ingresado son: "<<endl<<endl;
  14.  
  15.    suma=0; // Almacena la suma de los divisores
  16.  
  17.    for (int i=1;i<=(numero/2);i++)
  18.  
  19.     {
  20.       if (numero%i==0)
  21.         {
  22.          cout<<i<<endl; //Imprimimos los divisores
  23.          suma=suma+i;
  24.             }
  25.     }
  26.  
  27.   suma=suma+numero; //Sumamos el numero inicial que es divisor de él mismo
  28.  
  29.    cout<<numero<<endl<<endl<<endl;
  30.    cout << "La suma de los divisores " << numero << " es: " << suma <<endl<<endl;
  31.  
  32.  
  33.    getch();
  34.    return 0;
  35. }
  36.  

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Código de suma de divisores?
« Respuesta #1 en: Sábado 5 de Marzo de 2011, 06:02 »
0
No veo que hayas puesto la condición donde verificas que es negativo el número.
Después  de leerlo de la entrada estándar (cin >> numero), coloca un if que verifique si el número es menor que cero, y ya tomas la acción que desees.
La imaginación es el límite.
Hardware & Software | Mexchip

herzdark

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: ar
    • Ver Perfil
Re: Código de suma de divisores?
« Respuesta #2 en: Sábado 5 de Marzo de 2011, 06:24 »
0
haber si entendi lo q vos queres es pidiendo numeros hasta q el numero ingresado sea neg no? si es así lo unico q debe hacer es cerrar el codigo en una sentencia while

Código: C++
  1.  
  2.    cout << "Introdusca un numero: ";
  3.    cin >> numero;
  4.    while(numero>0)
  5.    {cout<<"Los divisores del numero ingresado son: "<<endl<<endl;
  6.     suma=0; // Almacena la suma de los divisores
  7.     for (int i=1;i<=(numero/2);i++)
  8.      {if (numero%i==0)
  9.        {cout<<i<<endl; //Imprimimos los divisores
  10.         suma=suma+i;
  11.        }
  12.     }
  13.    suma=suma+numero; //Sumamos el numero inicial que es divisor de él mismo
  14.    cout<<numero<<endl<<endl<<endl;
  15.    cout << "La suma de los divisores " << numero << " es: " << suma <<endl<<endl;
  16.    cout << "Introdusca un numero: ";
  17.    cin >> numero;
  18.   }
  19.  
  20.  

esto lo q va a hacer es pedir numeros hasta q se cumpla la condicion de q el numero ingresado sea mayor a 0

Kenz_M

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Código de suma de divisores?
« Respuesta #3 en: Sábado 5 de Marzo de 2011, 06:38 »
0
se me creo un ciclo infinito con el código que me mandaste :(

herzdark

  • Miembro activo
  • **
  • Mensajes: 38
  • Nacionalidad: ar
    • Ver Perfil
Re: Código de suma de divisores?
« Respuesta #4 en: Sábado 5 de Marzo de 2011, 06:47 »
0
Cita de: "Kenz_M"
se me creo un ciclo infinito con el código que me mandaste :(
no se q hiciste pero probe el codigo q te puse y anda perfecto o lo q vos querias no es hacer eso sino validar el dato a procesar sea positivo no?

Kenz_M

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Código de suma de divisores?
« Respuesta #5 en: Sábado 5 de Marzo de 2011, 06:51 »
0
Cita de: "herzdark"
Cita de: "Kenz_M"
se me creo un ciclo infinito con el código que me mandaste :(
no se q hiciste pero probe el codigo q te puse y anda perfecto o lo q vos querias no es hacer eso sino validar el dato a procesar sea positivo no?

si, lo que quiero es que solo corra con números positivos y que luego de calcular la suma de un numero no se termine sino que me vuelva a pedir otro numero.

ya vi me error, ya me funciona muy bien.
Muchas gracias
 :good: