Cod sursa(job #1334600)
| Utilizator | Data | 4 februarie 2015 15:18:09 | |
|---|---|---|---|
| Problema | Sum | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <cstdio>
using namespace std;
int c[100005];
inline void ciur(int n)
{
int i,j;
for(i=1; i<=n; ++i)
c[i]=i;
for(i=2; i<=n; ++i)
if (c[i]==i)
{
for(j=(i<<1); j<=n; j+=i)
c[j]=c[j]/i*(i-1);
c[i]=i-1;
}
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
int n,x,i;
scanf("%d",&n);
ciur(100000);
for(i=1; i<=n; ++i)
{
scanf("%d",&x);
printf("%lld\n",(x*c[x])<<1);
}
return 0;
}
