Pagini recente » Borderou de evaluare (job #3113148) | Cod sursa (job #1027409) | Cod sursa (job #3322397) | Cod sursa (job #1507902) | Cod sursa (job #3345472)
#include <bits/stdc++.h>
#define int long long int
using namespace std;
long long euler_indicator[1000001];
int32_t main()
{
ifstream cin("fractii.in");
ofstream cout("fractii.out");
for(int i = 1; i <= 1000000; i++)
{
euler_indicator[i] = i;
}
for(int i = 2; i <= 1000000; i++)
{
if(euler_indicator[i] == i)
{
euler_indicator[i]--;
for(int j = i * 2; j <= 1000000; j += i)
{
euler_indicator[j] = euler_indicator[j] / i * (i - 1);
}
}
}
int n;
cin >> n;
int ans = 0;
for(int i = 2; i <= n; i++)
{
ans += euler_indicator[i];
}
cout << ans * 2 + 1 << "\n";
}