Cod sursa(job #2324293)

Utilizator gabiluciuLuciu Gabriel gabiluciu Data 20 ianuarie 2019 15:41:31
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <time.h>
#include <cmath>

using namespace std;
#define nl '\n'

template<class a>
void print(a v) {
    //for_each(all(v), [](auto x) { cout << x; });
}

#define N 16
#define M 16
#define ull unsigned long long
int n, a[1000001];
ull suma;

inline void sieve() {
    for (int i = 2; i <= n; ++i) {
        for (int j = 2 * i; j <= n; j += i) {
            a[j] -= a[i];
            suma -= a[i];
        }
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    freopen("fractii.in", "r", stdin);
    freopen("fractii.out", "w", stdout);
    clock_t tStart = clock();
    cin >> n;
    for (int i = 1; i <= n; ++i)
        a[i] = i - 1, suma += a[i];
    sieve();
    cout << suma * 2 + 1;
    printf("\nTime taken: %.2fs\n", (double) (clock() - tStart) / CLOCKS_PER_SEC);
}