Cod sursa(job #371012)
| Utilizator | Data | 3 decembrie 2009 00:10:17 | |
|---|---|---|---|
| Problema | Sum | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <stdio.h>
long long a[1000004];
long long x[1000004];
int main(){
long long i,j,n,max=0;
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf("%lld",&n);
for(i=1;i<=n;i++){
scanf("%lld",&x[i]);
if(x[i]>max){max=x[i];}
}
for(i=1;i<=max;i++){a[i]=i-1;}
for(i=2;i<=max;i++){
for(j=i*2;j<=max;j+=i){
a[j]-=a[i];
}
}
a[1]=1;
for(i=1;i<=n;i++){
printf("%lld\n",2*a[x[i]]*x[i]);
}
return 0;
}