Cod sursa(job #2553600)

Utilizator adieldinuadieldinu adieldinu Data 22 februarie 2020 10:21:09
Problema Fractii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <iostream>
//φ(n)
//CERINTA : Se da numarul n, cate fractii ireductibile se pot forma cu elementele multimii {1, 2, 3, ... ,n}
using namespace std;

ifstream in("fractii.in");
ofstream out("fractii.out");
/*
int phi(int n)
{
    int r = n , d = 2;
    while(n > 1)
    {
        if(n % d == 0)
        {
            r = r / d * (d - 1);
            while(n % d == 0)
                n /= d;
        }
        d ++;
        if(d * d > n)
            d = n;
    }
    return r;
}
*/
const int VMAX = 1000010;int n;
long long int s;
int array_phi[VMAX];

int main()
{
    in>>n;

    for(int i = 2; i <= n ; i++)
        array_phi[i] = i - 1;

    for(int i = 2;  i <= n ; i++)
        {
            s += array_phi[i];
            for(int j = 2 * i; j <= n ; j += i)
                array_phi[j] -= array_phi[i];
        }

    out<<2*s+1;
    return 0;
}