Pagini recente » Cod sursa (job #739442) | Cod sursa (job #1625570) | Cod sursa (job #3134825) | Cod sursa (job #2889653) | Cod sursa (job #378931)
Cod sursa(job #378931)
#include <stdio.h>
#define MAX 100007
int ciur[MAX], u[MAX];
long long i, j, k, n;
long long sum, x;
int main()
{
FILE *f = fopen ("sum.in","r");
FILE *g = fopen ("sum.out","w");
fscanf (f,"%d", &n);
/*for (i=1; i<=MAX; ++i)
ciur[i] = 1;
for (i=2; i*i<=MAX; ++i)
if (ciur[i])
for (j=2; i * j < MAX; ++j)
ciur[i*j] = 0;*/
for (i=1; i<=MAX; ++i)
ciur[i] = i - 1;
for (i=2; i<=MAX; ++i)
if (u[i] == 0)
{
for (j=2*i; j <= MAX; j +=i)
{
u[j] = 1;
ciur[j] -= ciur[i];
}
}
for (i=1; i<=n; ++i)
{
fscanf (f,"%d", &x);
sum = ciur[x] * x * 2;
fprintf (g,"%lld\n", sum);
}
fclose(g);
fclose(f);
return 0;
}
/*for (i=0; i<n; ++i)
{
sum = 0;
fscanf (f,"%d", &x);
j = 1;
while (j >= 0 && j <= 2 * x)
{
if (cmmdc(x, j) == 1)
sum += j;
j ++;
}
fprintf (g,"%d\n", sum);
}*/