Pagini recente » Borderou de evaluare (job #2391067) | Borderou de evaluare (job #2396704) | Borderou de evaluare (job #2138019) | Borderou de evaluare (job #779156) | Cod sursa (job #313993)
Cod sursa(job #313993)
#include<stdio.h>
#include<math.h>
#define LMAX 200000
long n,x;
char c[100005];
void ciur(long n)
{
long long i,j;
for(i=1;2*i+1<=n;++i)
if(c[i]==0)
for(j=2*i*i+2*i;2*j+1<=n;j=j+2*i+1)
c[j]=1;
}
long long phi()
{
long i,ti,cx,lim,fi=1;
lim=sqrt(x);
ti=1;
i=1;
cx=x;
while(ti<=lim)
{
ti=2*i+1;
if(c[i]==0)
if(cx%ti==0)
{
fi=fi*(ti-1);
cx=cx/ti;
}
++i;
}
if(cx>1)
fi=fi*(cx-1);
return fi;
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
int i;
long long s;
ciur(LMAX);
scanf("%ld",&n);
for(i=1;i<=n;++i)
{
scanf("%ld",&x);
s=phi();
s=2*s*x;
printf("%lld\n",s);
}
return 0;
}