Cod sursa(job #1613143)
Utilizator | Vasilescu Eliza Vasilescu | Data | 25 februarie 2016 11:05:01 |
---|---|---|---|
Problema | Sum | Scor | 10 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include <stdio.h>
int e[200001];
int calcul(int n){
int i, j;
for(i=2; i<=n; i++){
e[i]=i;
}
for(i=2; i<=n; i++){
if(e[i]==i)
for(j=i; j<=n; j+=i)
e[j]=e[j]/i*(i-1);
}
}
int main(){
FILE *fin, *fout;
fin=fopen("sum.in", "r");
fout=fopen("sum.out", "w");
int n, y, x, i, j;
fscanf(fin, "%d", &n);
while(n>0){
fscanf(fin, "%d", &y);
calcul(100000);
fprintf(fout, "%d\n", 2*y*e[y]);
n--;
}
fclose(fin);
fclose(fout);
return 0;
}