Cod sursa(job #1000399)

Utilizator florin.elfusFlorin Elfus florin.elfus Data 22 septembrie 2013 19:52:46
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
#define LMAX 100100
int ciur[LMAX];

void make_ciur()
{
    int i,j;
    for(i=1;i<=100000;i++)
        ciur[i]=i;
    for(i=2;i<=100000;i++)
        if(ciur[i]==i)
            for(j=i;j<=100000;j+=i)
                ciur[j]=(long long)ciur[j]*(i-1)/i;
}

int main()
{
    int n,x;
    long long rez;

    freopen("sum.in","r",stdin);
    freopen("sum.out","w",stdout);

    make_ciur();

    scanf("%d",&n);
    while(n--)
    {
        scanf("%d",&x);
        rez=(long long)ciur[x]*x<<1;
        printf("%lld\n",rez);
    }

    return 0;
}