Cod sursa(job #437889)

Utilizator darrenRares Buhai darren Data 10 aprilie 2010 10:45:43
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#include<vector>
using namespace std;

void gen();
void read();
void doit();
void write();

int n;
vector<int> phi(1000005);
long long sum;

int main() {
	read();
	doit();
	write();
	return 0;
}

void read()
{
	ifstream fin( "fractii.in" );
	fin >> n;
	fin.close();
}

void doit()
{
	int i, j;
	for ( i = 2; i <= n; ++i )
		phi[i] = i - 1;
	for ( i = 2; i <= n; ++i )
		if ( phi[i] == i - 1 )
			for ( j = 2 * i; j <= n; j += i )
				phi[j] -= j / i - 1;
	for ( i = 2; i <= n; ++i )
		sum += phi[i];
	sum *= 2;
	sum += 1;
}

void write()
{
	ofstream fout( "fractii.out" );
	fout << sum;
	fout.close();
}