Pagini recente » Cod sursa (job #1505948) | Cod sursa (job #2682335) | Cod sursa (job #2517330) | Cod sursa (job #1480082) | Cod sursa (job #1832833)
#include<stdio.h>
#define MAXN 100000
#define MAXX 100000
inline void ciur(int limit);
FILE*fin,*fout;
int totient[MAXX];
int query[MAXN];
int main()
{
fin=fopen("sum.in","r");
fout=fopen("sum.out","w");
int N;
fscanf(fin,"%d",&N);
int max=-1;
for(int i=1;i<=N;i++)
{
fscanf(fin,"%d",&query[i]);
if(query[i]>max)
{
max=query[i];
}
}
ciur(max);
for(int i=1;i<=N;i++)
{
fprintf(fout,"%d\n",2*totient[query[i]]*query[i]);
}
fclose(fin);
fclose(fout);
return 0;
}
inline void ciur(int limit)
{
for(int i=1;i<=limit;i++)
{
totient[i]=i-1;
}
for(int i=2;i<=limit;i++)
{
for(int j=2*i;j<=limit;j+=i)
{
totient[j]-=totient[i];
}
}
}