Cod sursa(job #3162730)

Utilizator wappy86Cristian Florea wappy86 Data 29 octombrie 2023 19:03:07
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
// 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;

    fin.close();
    fout.close();

    return 0;
}