Cod sursa(job #1865178)

Utilizator demetriad-dagpagDavid Demetriad demetriad-dagpag Data 1 februarie 2017 15:05:08
Problema Sum Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int getINT()
{
    int nr=0;
    char c;
    c=getchar();
    while(!isdigit(c))
        c=getchar();
    while(isdigit(c))
    {
        nr=nr*10+c-'0';
        c=getchar();
    }
    return nr;
}
int main()
{
    int t,i,x,e,xc,z,div;
    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);
    t=getINT();
    for(i=1; i<=t; i++)
    {
        x=getINT();
        div=2;
        e=1;
        xc=x;
        while(div*div<=x)
        {
            z=1;
            while(x%div==0)
                z*=div,x/=div;
            z/=div;
            if(z>0)
                e=e*(div-1)*z;
            div++;
        }
        if(x>1)
            e*=(x-1);
        printf("%lld\n",(long long)2*xc*e);
    }

    return 0;
}