Cod sursa(job #1609349)

Utilizator stefan.friptuPetru Stefan Friptu stefan.friptu Data 22 februarie 2016 19:10:44
Problema Sum Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>
#include <cmath>

using namespace std;


int phi (int x)
{
    int lim=sqrt((double)x),e=0,d=2,r_phi=x;

    while(x>1 && d<=lim)
        {
            e=0;
            while(x%d==0)
                {
                    x/=d;
                    e++;
                }
            if(e)
                r_phi=r_phi/d*(d-1);
            d++;
        }
    if(x>1)
        r_phi=r_phi/x*(x-1);
    return r_phi;
}


int main()
{
    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);
    int p,i,x,t;
    scanf("%d",&t);
    for(i=1;i<=t;i++)
        {
            scanf("%d",&x);
            p=phi(x);
            printf("%lld\n",(long long)p*2*x);
        }
    return 0;
}