Cod sursa(job #304200)

Utilizator catalin93Catalin Ionescu catalin93 Data 11 aprilie 2009 13:21:20
Problema Fractii Scor 100
Compilator cpp Status done
Runda runda incepatorilor Marime 0.49 kb
#include<stdio.h>
#define N 1000050

int e[N],n;

void euler()
{
	int i,j;
		
	for(j=2;j<N;j++)
		e[j] = j;
	
	for(i=2;i<N;i++)
		
		if(e[i]==i)
			
			for(j=i;j<N;j+=i)
				
				e[j] = e[j] / i * (i-1);
}

long long calcul()
{
	long long s=1,i;
	for(i=2;i<=n;i++)
		s += 2 * (long long)e[i]; 

    return s;
}

int main()
{
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	scanf("%d",&n);
	euler();
	printf("%lld\n",calcul());
	return 0;
}