Cod sursa(job #263872)

Utilizator mariusdeacuMarius Deacu mariusdeacu Data 20 februarie 2009 21:37:18
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
int k;
int pnum[79000];
double tot(int x)
{
	double res = x;
	bool isPrime = true;
	for (int i = 0; i < k; i++)
	{
		if (x % pnum[i] == 0)
		{
			isPrime = false;
			while (x % pnum[i] == 0)
				x /= pnum[i];
			res *= (1 - (double)1 / pnum[i]);
		}
	}
	if (isPrime)
	{
		res *= (1 - (double)1 / x);
		pnum[k++] = x;
	}
	return res;
}
int main()
{
	int n;
	k = 0;
	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++)
	{
		num += tot(i);
	}
	num = num * 2 + 1;
	fprintf(out, "%.0Lf", num);
	fclose(out);
	return 0;
}