Cod sursa(job #156222)
Utilizator | Data | 12 martie 2008 13:43:55 | |
---|---|---|---|
Problema | Sum | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include<stdio.h>
#include<stdio.h>
#define N 100128
long long eu[N];
long long prime[N];
long long i,t,nr=0;
void totient()
{
long long i,j;
for(i=2;i<N;i++)
eu[i]=i;
for(i=2;i<N;i++)
if(!prime[i])
for(j=i;j<N;j+=i)
{
prime[j]=1;
eu[j]=eu[j]-(eu[j]/i);
}
}
int main()
{
long long rez=0,n;
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%lld", &t);
totient();
for(i=1;i<=t;++i)
{
scanf("%lld",&n);
rez=2*eu[n]*n;
printf("%lld\n", rez);
}
return 0;
}