Cod sursa(job #338764)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 6 august 2009 20:41:26
Problema Fractii Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <iostream>

using namespace std;

int phi(int a)
{
	int tmp, ret = 1;

	for ( int i = 2; i <= a / i; ++i )
	{
		tmp = 1;
		while ( a % i == 0 )
			a /= i, tmp *= i;
		if ( tmp > 1 )
		{
			ret = ret*(i-1);
			ret = ret*(tmp/i);
		}
	}

	if ( a > 1 )
		ret = ret * (a - 1);

	return ret;
}

int main()
{
	int N;
	long long ret = 1;

	freopen("fractii.in","r",stdin);
	freopen("fractii.out","w",stdout);

	cin >> N;
	for ( int i = 2; i <= N; ++i )
		ret += phi(i) * 2;
	
	cout << ret << endl;

	return 0;
}