Cod sursa(job #378935)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 29 decembrie 2009 23:48:58
Problema Sum Scor 5
Compilator c Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>

#define MAX 200007

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);
	}*/