Cod sursa(job #1168150)

Utilizator Kerriganamihut Kerrigan Data 7 aprilie 2014 02:57:54
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
/******************************************************************************************
*           .--.																		  *
* ::\`--._,'.::.`._.--'/::			@author Ana M. Mihut	@course InfoArena Tryout	  *
* ::::. `  __::__ ' .:::::			@alias  LT-Kerrigan		@date   06.04.2014			  *
* ::::::-:.`'..`'.:-::::::			@link   http://infoarena.ro/problema/fractii	      *
* ::::::::\ `--' /::::::::			@detail  count x ireductible fractions				  *
*																						  *
*******************************************************************************************/

#include <iostream>
#include <fstream>
#include <vector>

std::vector<long long> placeholder(1000000);
long long n, j, i, count;

int main(){
	std::ifstream in("fractii.in");
	std::ofstream out("fractii.out");

	in >> n;

	count = 1;
	for (i = 2; i <= n; i++)
		placeholder[i] = i;
	
	for (i = 2; i <= n / 2; i++){
		if (placeholder[i] == i){
			for (j = 2; j <= (n / i); j++)
				placeholder[i*j] = (placeholder[i*j] * (i - 1)) / i;
		}
	}

	for (i = 1; i <= n; i++){
		if (placeholder[i] == i){
			count += (i - 1) * 2;
		}
		else 
			count += (placeholder[i] * 2);
	}
	out << count;

	return 0;
}