Pagini recente » Cod sursa (job #2107079) | Diferente pentru home intre reviziile 528 si 527 | Cod sursa (job #210014) | Istoria paginii runda/simusimu__1/clasament | Cod sursa (job #348521)
Cod sursa(job #348521)
#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;
}