domingo, 12 de febrero de 2012

Project Euler 21

Este problema es especial para mi, me hizo pensar mucho. Y eso fue por que no entendí con claridad.

"Evaluate the sum of all the amicable numbers under 10000."

#include <iostream>
using namespace std;
int suma(int num);
int main()
{
    int sum = 0;
    for (int n1 = 2; n1 <= 10000; n1++)
    {
        int n2 = suma(n1);
        if ((n1 != n2)&&(suma(n2) == n1))
        {
            sum += n1;
        }
    }
    cout <<sum<<endl;
    return 0;
}

int suma(int num)
{
    int tot = 1;
    for (int i = 2; i <(num/2)+1; i++)
    {
        if (num % i == 0)
        {
            tot += i;
        }
    }
    return tot;
}


No hay comentarios:

Publicar un comentario