Cod sursa(job #147352)
Utilizator | Data | 2 martie 2008 20:29:31 | |
---|---|---|---|
Problema | Sum | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
#define SIZE 50000
int t, n;
double phi[200005];
void read()
{
scanf("%d", &n);
}
void solve()
{
}
int main()
{
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
scanf("%d", &t);
for (int i = 1; i <= SIZE; ++i)
phi[i] = i-1;
for (int i = 2; i <= SIZE; ++i)
for (int j = 2*i; j <= SIZE; j += i)
{
if(j <= 200000)
phi[j] -= phi[i];
}
while(t)
{
read();
printf("%.0f\n", 2*n*phi[n]);
t--;
}
return 0;
}