Cod sursa(job #110560)

Utilizator eddieOlariu Eduard Iuliu eddie Data 26 noiembrie 2007 22:45:25
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
int prim[5000000],used[10000000];
long nrprim;
void ciur()
{
	long q;
	nrprim=1;
	prim[1]=2;
	for (long i=3; i<=1000000;i+=2)
		if ( used[i]==0 )
		{
			prim[++nrprim]= i;
			for ( long j=i; j<=1000000; j+=i )
				used[i]=1;
		}
}
unsigned long long nrprimecuxmaimicicax ( long x )
{
	long dx=x;
	long h=1;
	long i=1;
	for (i=1;x>=prim[i] && i<=nrprim ;i++)
	    if ( x%prim[i]==0 )
		{
			dx/=prim[i];
			h=h*(prim[i]-1);
		}
    return dx*h;
}
int main()
{
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	long n;
	ciur();
	scanf("%ld",&n);
	long i;
	long hhj=0;
	for (i=2;i<=n;i++)
    {
		hhj+=nrprimecuxmaimicicax(i);
	}
	printf("%ld",hhj*2+1);
	fclose(stdout);
	return 0;
}