Cod sursa(job #341664)

Utilizator digital_phreakMolache Andrei digital_phreak Data 19 august 2009 09:56:45
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <iostream>
#include <fstream>
#include <cstdlib>

#define FOR(i,a,b) for((i)=(a);(i)<(b);++(i))
#define REP(i,n) FOR((i),0,(n))

using namespace std;

long phi[1000001];

int main() {
	//ios::sync_with_stdio(false);
	
	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);
	
	long N;long long sol;
	
	scanf("%ld",&N);
	
	for (long i=1;i<=N;++i) phi[i] = i-1;
	
	sol = 0;
	
	for (long i=2;i<=N;++i) 
	{
		long x = i*2;
		while (x <= N) 
		{
			phi[x] -= phi[i];
			x += i;
		}
		sol += phi[i];
	}
	
	sol = 2 * sol + 1;
	
	printf("%lld\n",sol);
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}