Cod sursa(job #188732)

Utilizator scvrentScvrent Alexdrei scvrent Data 9 mai 2008 20:18:37
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include <iostream>
#include <fstream>

using namespace std;

/*			 
 *                       __ 
 *                      |__|			     
 *  _____    __	   __	 __	  __	   ______    _____	     _ 	       ________	    ____     _______   	________
 * |  _	 \  |  |  |  | 	|  |	 |  |  	  |   ___|  |  _  \    	    / \	      |__    __|   /   	\   |  _____|  |__    __| 
 * | |_|  | |  |__|  | 	|  |   __|  |__	  |  |___   | |_|  | 	   / _ \      	 |  |  	  |  __	 |  | |_____  	  |  | 	  
 * |   __/  |	     |	|  |  |	       |  |	 |  |  	__/   	  / |_| \     	 |  |	  | |  | |  |_____  |	  |  |	  
 * |  |	    |	__   |	|  |  |__    __|  |   ___|  |  	  \   	 /  ___	 \    	 |  |	  | |__| |	  | |	  |  |	  
 * |  |	    |  |  |  |	|  |	 |  |	  |  |___   |  |\  \   	/  /   \  \   	 |  |	  |    	 |   _____| |	  |  |	   _   _   _ 
 * |__|	    |__|  |__|	|__|	 |__|	  |______|  |__| \__\  /__/     \__\  	 |__|  	   \____/   |_______|	  |__|	  |_| |_| |_|
 *							     					 
 */   			 

long long int N;

long long phi[1000001];

int main(int argc, char *argv[]) 
{
	ifstream fin("fractii.in");
	fin >> N;
	fin.close();

	for (int i(1); i <= N; ++i)
		phi[i] = i-1;

	for (int i(2); i <= N; ++i)
		for (int j = 2*i; j <= N; j += i)
			phi[j] -= phi[i];

	long long s(0);
	for (int i(2); i <= N; ++i)
		s += phi[i];

	ofstream fout("fractii.out");
	fout << 2*s+1 << endl;
	fout.close();

	return 0;
}