Pagini recente » Cod sursa (job #144976) | Rating Niculae Cosmin (Carcodil4565) | Istoria paginii utilizator/adriansk | Statistici Vlad Radu Schiller (vladschiller) | Cod sursa (job #1404443)
#include <stdio.h>
#include <ctype.h>
#define MAX 100000
int fi[MAX+1];
FILE *fin;
inline void ciur(){
int i, j;
for(i=1; i<=MAX; i++){
fi[i]=i;
}
for(i=2; i<=MAX; i++){
if(fi[i]==i){
for(j=i; j<=MAX; j+=i){
fi[j]/=i;
fi[j]*=(i-1);
}
}
}
}
inline int citeste(){
int x=0;
char ch=fgetc(fin);
while(!isdigit(ch)){
ch=fgetc(fin);
}
while(isdigit(ch)){
x=x*10+ch-'0';
ch=fgetc(fin);
}
return x;
}
int main(){
int n, q;
FILE *fout;
fin=fopen("sum.in", "r");
fout=fopen("sum.out", "w");
ciur();
fscanf(fin, "%d", &q);
while(q>0){
q--;
n=citeste();
fprintf(fout, "%lld\n", 2LL*n*fi[n]);
}
fclose(fin);
fclose(fout);
return 0;
}