Cod sursa(job #188734)

Utilizator scvrentScvrent Alexdrei scvrent Data 9 mai 2008 20:21:09
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 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;
}