Cod sursa(job #3222362)

Utilizator bogdan1479Luca Bogdan Alexandru bogdan1479 Data 9 aprilie 2024 20:51:56
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
#define QED fin.close(); fout.close(); return 0;
using namespace std;
const int VMAX = 1000006;
ifstream fin("fractii.in");
ofstream fout("fractii.out");
#define cin fin
#define cout fout

int v[VMAX + 1];

void ciur(int n)
{
    for(int i = 2; i <= n; i ++)
        v[i] = i;
    for(int i = 2; i <= n; i++)
        if(v[i] == i)
            for(int j = 1; i * j <= n; j++)
                v[i * j] -= v[i * j] / i;
}

int main()
{
    ciur(VMAX);
    long long s=0;
    int n;
    cin >> n;
    for(int i=1; i<=n; i++)
    {
        s+=v[i];
    }
    s=s*2+1;///observam ca se repeta fractia (cand e inversa) si ar fi 2*(s+1), doar ca s-ar repeta unul din ele deci e 2s+1
    ///am mai intalnit o problema asemanatoare acum 2 sedinte cred
    cout<<s;

    QED
}