Pagini recente » Diferente pentru concursuri intre reviziile 107 si 182 | Diferente pentru sandbox intre reviziile 549 si 578 | Cod sursa (job #270828) | Diferente pentru problema/hoata intre reviziile 22 si 41 | Cod sursa (job #3325169)
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
#define int long long
int ciur[1000005];
int32_t main()
{
ifstream cin ("fractii.in");
ofstream cout ("fractii.out");
int n;
cin >> n;
for(int i=1; i<=n; i++)
ciur[i]=i;
for(int i=2; i<=n; i++)
{
if(ciur[i]==i)
{
ciur[i]--;
for(int j=2; j*i<=n; j++)
ciur[j*i]=ciur[j*i]*(i-1)/i;
}
}
int sum=0;
for(int i=1; i<=n; i++)
sum+=2*ciur[i];
cout << sum-1;
return 0;
}