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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Problema en ejercicio con funciones en: 9 Agosto 2015, 17:02 pm
Muy buenas, acabo de registrarme en el foro puesto que tengo un problema al que no le veo solución. Estoy haciendo un programa que me devuelva los divisores de 1 al 1000 y me diga cual  de los numeros cuenta con más divisores. Sin embargo siempre me devuelve 60 (con 12 divisores), y conté por ejemplo los de 1000 y me salen 16. Les dejo el código para que le den un vistazo puesto que estoy seguro que encontraran la solución.

Código:
#include <iostream>

using namespace std;

void divisors(int n)
{
    for (int i=1; i<=n; i++)
    {
        if (n%i==0)
            cout << i << endl;
    }
}

long contaDivisors(int n)
{
    long cd=0;
    for (int i=1; i<=n; i++)
    {
        if (n%i==0)
            cd++;
    }
    return cd;
}


int main()
{
    long maxDivisors=0;
    for (int num=1; num<=1000; num++)
    {
        if(contaDivisors(num)>=maxDivisors)
            maxDivisors=num;
        cout << endl << "Els divisors de " << num << " son:" << endl;
        divisors(num);
    }

    cout << "\n\n\n";

    cout << "El nombre mes gran amb mes numero de divisors es el " << maxDivisors << " amb " << contaDivisors(maxDivisors) << " divisors.";

    cout << "\n\n\n";

    return 0;
}

Salud!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines