Cod sursa(job #348521)

Utilizator alin.predoiAlin Predoi alin.predoi Data 15 septembrie 2009 22:46:06
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstdlib>
using namespace std;

 typedef vector<int> vi; 
 typedef vector<vi> vvi; 
 typedef pair<int,int> ii; 
 #define sz(a) int((a).size()) 
 #define pb push_back 
 #define all(c) (c).begin(),(c).end() 
 #define tr(c,i) for(typeof((c).begin() i = (c).begin(); i != (c).end(); i++) 
 #define present(c,x) ((c).find(x) != (c).end()) 
 #define cpresent(c,x) (find(all(c),x) != (c).end())

int cmmdc (int a, int b) {
	while (a!=b) {
		if (a>b)	a-=b; else
		if (b>a)	b-=a;
		if (b==a)	break;
	}
	return (a==1)?0:a;
}

int main() {
	fstream f,g;
	int n,nr=0;
	vi v;
	f.open("fractii.in", fstream::in);
	g.open("fractii.out", fstream::out);
	f>>n;
	f.close();
	v.pb(0);
	v.pb(1);
	for (int i = 2; i<=n; i++)
		v.pb(i-1);
	for (int i = 2; i<=n; i++) {
		for (int j = 2*i; j<=n; j+=i)
			v[j]-=v[i]; 
		nr+=v[i];
	}
	g<<2*nr+1;
	g.close();
return 0;
}