Cod sursa(job #1171097)

Utilizator VisanCosminVisan Tudor Cosmin VisanCosmin Data 15 aprilie 2014 09:34:19
Problema Sum Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>

using namespace std;

FILE*f=fopen("sum.in","r");
FILE*g=fopen("sum.out","w");

bool v[100000];
unsigned long div[200],d,k,xCop,i,n,x,sum[200],S;
void Solve()
{
    d=3;
    k=0;
    xCop=x;
    while(xCop>1)
    {
        if(xCop%2==0)
            {
            k=1;
            div[0]=2;
            xCop/=2;
            }
        else {
                if(xCop%d==0)
                {
                    if(d!=div[k-1]) div[k++]=d;
                    xCop/=d;

                }
                else d+=2;
                }
    }
   int stop=1;
   while(stop)
   {
       stop=0;
       for(i=0;i<k;i++)
            if(sum[i]<=2*x)
            {
            stop=1;
            v[sum[i]]=1;
            sum[i]+=div[i];
            }
   }
   for(i=1;i<=2*x;i++)
        if(v[i]==1) S+=i;
   S=x*(2*x+1)-S;
   fprintf(g,"%lu\n",S);

}

int main()
{
    fscanf(f,"%lu",&n);
    for(i=1;i<=n;i++)
    {
        fscanf(f,"%lu",&x);
        Solve();
    }




    fclose(f);
    fclose(g);
    return 0;
}