Cod sursa(job #264212)

Utilizator mariusdeacuMarius Deacu mariusdeacu Data 21 februarie 2009 19:22:33
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
int erat[1000001];
int main()
{
	int n;
	FILE *in = fopen("fractii.in","rt");
	FILE *out = fopen("fractii.out","wt");
	fscanf(in, "%d", &n);
	fclose(in);
	double num = 0;
	for (int i = 2; i <= n; i++)
	{
		if (erat[i] == 0)
		{
			int add = 0;
			int nummar = 0;
			for (int j = 2 * i; j <= n; j+=i)
			{
				add++;
				if (erat[j] != 0)
				{
					erat[j] -= nummar;
					nummar++;
				}
				erat[j] += add;
			}
		}
		erat[i]++;
		num += i - erat[i];
		//fprintf(out, " totien(%d) = %d\n", i, i - erat[i]);
	}
	num = num * 2 + 1;
	fprintf(out, "%.0lf", num);
	fclose(out);
	return 0;
}