Cod sursa(job #1169914)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 12 aprilie 2014 13:04:15
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include <fstream>
#include <vector>
#include <numeric>
#include <utility>
#include <iostream>

using std::cout;
using std::ifstream;
using std::ofstream;
using std::accumulate;
using std::vector;

int main(){
	ifstream f("fractii.in" );
	ofstream g("fractii.out");
	int N = 0;
	f>>N;
	vector<int> phi(N+1,0);
	for(int i = 1;i<=N;i++){
		phi[i] = i;
	}
	for(int i = 2;i<=N;i++){
		if(phi[i] == i){
			for(int j = i;j <= N;j += i){
				phi[j] /= i;
				phi[j] *= (i-1);
			}
		}
	}
	g<<2*accumulate(phi.begin(),phi.end(),0)-1;
	return 0;
}