Cod sursa(job #463137)
Utilizator | Data | 14 iunie 2010 17:29:03 | |
---|---|---|---|
Problema | Sum | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.39 kb |
#include<stdio.h>
const int N = 1<<20;
int e[N];
int main()
{
int n,i,j,k,x;
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=100000;++i)
e[i]=i;
for(i=2;i<=100000;++i)
if(e[i]==i)
for(j=i;j<=100000;j+=i)
e[j]=e[j]/i*(i-1);
for (k=1;k<=n;++k)
{
scanf("%d",&x);
printf("%lld\n",2*e[x]*x);
}
return 0;
}