Pagini recente » Cod sursa (job #1660502) | Cod sursa (job #2251745) | Cod sursa (job #1924865) | Cod sursa (job #2751362) | Cod sursa (job #115991)
Cod sursa(job #115991)
#include <stdio.h>
#include <string.h>
int main()
{
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
int v[320], n, x, i, j, prime[67], cnt = 0, phi, temp;
long long sol;
memset(v, 0, sizeof(v));
for(i = 2; i < 320; ++i)
{
if(v[i] == 0)
{
prime[++cnt] = i;
for(j = 2 * i; j < 320; j += i)
{
v[j] = 1;
}
}
}
scanf("%d", &n);
for(i = 1; i <= n; ++i)
{
scanf("%d", &x);
temp = x;
phi = x;
for(j = 1; prime[j] * prime[j] <= x; ++j)
{
if(temp % prime[j] == 0)
{
phi /= prime[j];
phi *= (prime[j] - 1);
while(temp % prime[j] == 0)
{
temp /= prime[j];
}
}
}
if(temp)
{
phi /= temp;
phi *= (temp - 1);
}
sol = (long long) 2 * phi * x;
printf("%lld\n", sol);
}
return 0;
}