Pagini recente » Cod sursa (job #1560122) | Cod sursa (job #202596) | Cod sursa (job #1267672) | Cod sursa (job #1279878) | Cod sursa (job #3162732)
// basic file operations
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
int i, j, n, s[1000001];
long long r;
bool cmmdc(long a, long b)
{
while (a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}
return a == 1;
}
int main()
{
fin >> n;
// O(N^2)
/* for (i = 1; i <= n; ++i)
for (j = 1; j <= n; ++j)
if (cmmdc(i, j))
r++;
cout << r; */
// O(n log log n)
for (i = 2; i <= n; ++i)
s[i] = i - 1;
for (i = 2; i <= n; ++i)
for (r += s[i], j = i << 1; j <= n; j += i)
s[j] -= s[i];
fout << (r << 1) + 1;
fin.close();
fout.close();
return 0;
}