Cod sursa(job #338770)

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

using namespace std;

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 )
	{
		int tmp, phi = 1, a = i;

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

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

		ret += (phi << 1);
	}

	cout << ret << endl;

	return 0;
}