Pagini recente » Cod sursa (job #903128) | Cod sursa (job #636837) | Cod sursa (job #1816051) | Cod sursa (job #2849221) | Cod sursa (job #69536)
Cod sursa(job #69536)
#include<stdio.h>
#include<fstream.h>
#include<math.h>
typedef struct
{
long long x, e;
} factor;
factor v[10];
long long n, contor, nr, x;
void descomp(long longx)
{
long long exp, d;
d=2;
nr=0;
while (x!=1)
{
exp=0;
if (x%d==0)
{
nr++;
while (x%d==0)
{
exp++;
x/=d;
}
v[nr].e=exp;
v[nr].x=d;
}
d++;
}
}
long totient(long long x)
{
long long i, c=1;
for (i=1; i<=nr; i++)
c*=((v[i].x-1)*pow(v[i].x,v[i].e-1));
return c;
}
void prelucrare2()
{
long long i, j, s1;
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
scanf ("%lld",&n);
for (i=1; i<=n; i++)
{
scanf("%lld",&x);
descomp(x);
long long a=totient(x);
s1=(x*a)/2;
s1*=2;
printf("%lld\n",s1*2);
}
}
int main()
{
prelucrare2();
return 0;
}