Pagini recente » Diferente pentru problema/polig intre reviziile 22 si 23 | Cod sursa (job #2507792) | Cod sursa (job #2621393) | Cod sursa (job #1580386) | Cod sursa (job #1814887)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fi("fractii.in");
ofstream fo("fractii.out");
long long int phi[1000001];
void indicator(long long int n)
{
for (int i = 1;i <= n;++i)
phi[i] = i - 1;
for (int i = 2;i <= n;++i)
{
for (int j = 2 * i;j <= n;j += i)
phi[j] -= phi[i];
}
}
int main()
{
int n;
fi >> n;
long long int sol = 0;
indicator(n);
for (int i = 1; i<= n;i++)
sol += phi[i];
fo << 2 * sol + 1;
return 0;
}