Cod sursa(job #64378)

Utilizator c_sebiSebastian Crisan c_sebi Data 2 iunie 2007 23:14:51
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <stdio.h>

void desc(long long &n, long long &d, long long &p)
{
	d=2, p=0;
	while (n>1)
		{
			while (n%d==0)
				n/=d, ++p;
			if (p) break ;
			d++;
		}
}


int main()
{
	long long n, nr=1, tot[1000005]={0, 1}, i, ci, d, p;
	FILE *f=fopen("fractii.in", "r"), *g=fopen("fractii.out", "w");
	fscanf (f, "%lld", &n);
	fclose(f);
	for (i=2; i<=n; ++i)
		{
			ci=i;
			desc(ci, d, p);
			tot[i]=(d-1)*( (i/ci)/d )*tot[ci];
			nr+=2*tot[i];
		}
	fprintf (g, "%lld\n", nr);
	fclose(g);
	return 0;
}