Cod sursa(job #1334582)
| Utilizator | Data | 4 februarie 2015 15:08:22 | |
|---|---|---|---|
| Problema | Sum | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.66 kb |
#include<cstdio>
using namespace std;
int ciur[200041];
void genciur()
{
int i, j;
for(i=2; i<=200005; ++i)
ciur[i]=i;
for(i=2; i<=200005;++i)
{
if(ciur[i]==i)
{
for(j=i*2; j<=200005; j+=i)
ciur[j]=ciur[j]*(i-1)/i;
ciur[i]=i-1;
}
}
}
int main()
{
FILE *in=fopen("sum.in", "r"),
*out=fopen("sum.out", "w");
int n, x, i;
genciur();
fscanf(in, "%d", &n);
for(i=1; i<=n; ++i)
{
fscanf(in, "%d",&x);
fprintf(out, "%lld\n",(long long)2*x*ciur[x]);
}
fclose(in);
fclose(out);
return 0;
}
