Cod sursa(job #247559)

Utilizator mottyMatei-Dan Epure motty Data 23 ianuarie 2009 12:15:34
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.47 kb
#include<stdio.h>

#define N 1000001

int n,v[N],s;

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

void calcul()
{
	s=1;
	int i;
	for( i=2 ; i<=n ; ++i )
		s+= 2 * v[i];
}

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