Cod sursa(job #1760802)

Utilizator silkMarin Dragos silk Data 21 septembrie 2016 12:03:23
Problema Sum Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <cstdio>
#define NMax 100000

int sum[NMax+1];

void Precalc()
{
    int i,j;
    for(i = 1; i <= NMax; ++i) sum[i] = i;

    for(i = 2; i <= NMax; ++i)
    if(sum[i]==i)
        for(j = i; j <= NMax; j+=i) { sum[j]/=i; sum[j]*=(i-1); }
}

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

    int N,x;

    Precalc();

    scanf("%d",&N);
    while(N--)
    {
        scanf("%d",&x);
        printf("%lld\n", 2LL*x*sum[x]);
    }



return 0;
}