Cod sursa(job #1906588)

Utilizator andru47Stefanescu Andru andru47 Data 6 martie 2017 15:05:53
Problema Fractii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e6 + 5;
long long phi[NMAX];
inline long long indicator_euler(int n)
{
    for (int i = 1; i<=n; ++i)
        phi[i] = i;
    for (int i = 2; i<=n; ++i)
        if (phi[i] == i)
            for (int j = i; j<=n; j+=i)
                phi[j] /= i , phi[j] *= (i - 1);
    long long ans = 0LL;
    for (int i = 1; i<=n; ++i)
        ans += 1LL * phi[i];
    return ans * 2LL - 1LL;
}
int main()
{
    freopen("fractii.in","r",stdin);
    freopen("fractii.out","w",stdout);

    int n;
    scanf("%d", &n);
    printf("%lld\n", indicator_euler(n));
    return 0;
}