Cod sursa(job #465504)

Utilizator darrenRares Buhai darren Data 24 iunie 2010 15:35:31
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 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;
	for ( i = 2; i <= n; sum += phi[i], ++i )
		if ( phi[i] == i )
			for ( j = i; j <= n; j += i )
				phi[j] -= phi[j] / i;
	sum *= 2, ++sum;
}

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