Pagini recente » Cod sursa (job #425244) | Cod sursa (job #2627070) | Cod sursa (job #1715765) | Cod sursa (job #2822342) | Cod sursa (job #3222361)
#include <bits/stdc++.h>
#define QED fin.close(); fout.close(); return 0;
using namespace std;
const int VMAX = 1000006;
ifstream fin("tramvaie.in");
ofstream fout("tramvaie.out");
#define cin fin
#define cout fout
int v[VMAX + 1];
void ciur(int n)
{
for(int i = 2; i <= n; i ++)
v[i] = i;
for(int i = 2; i <= n; i++)
if(v[i] == i)
for(int j = 1; i * j <= n; j++)
v[i * j] -= v[i * j] / i;
}
int main()
{
ciur(VMAX);
long long s=0;
int n;
cin >> n;
for(int i=1; i<=n; i++)
{
s+=v[i];
}
s=s*2+1;///observam ca se repeta fractia (cand e inversa) si ar fi 2*(s+1), doar ca s-ar repeta unul din ele deci e 2s+1
///am mai intalnit o problema asemanatoare acum 2 sedinte cred
cout<<s;
QED
}