Cod sursa(job #1520358)

Utilizator serbanSlincu Serban serban Data 8 noiembrie 2015 17:15:30
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>

using namespace std;

int m, pr[500], l[500];
bool viz[1200];

void primes() {
    for(int i = 2; i <= 1100; i ++)
        if(!viz[i]) {
            m ++;
            pr[m] = i;
            int lim = 1100 / i;
            for(int j = 2; j <= lim; j ++)
                viz[i * j] = true;
        }
}

int main()
{
    primes();
    freopen("fractii.in", "r", stdin);
    freopen("fractii.out", "w", stdout);

    int n;
    cin >> n;
    long long ret = 0;
    for(int i = 1; i <= n; i ++) {
        int j = 1, aux = i, s = i;
        while(pr[j] <= aux) {
            if(aux % pr[j] == 0) {
                while(aux % pr[j] == 0)
                    aux /= pr[j];
                s -= s / pr[j];
            }
            j ++;
        }
        ret += s;
    }
    cout << (ret << 1) - 1 << "\n";
    return 0;
}