Cod sursa(job #2553591)

Utilizator adieldinuadieldinu adieldinu Data 22 februarie 2020 10:10:38
Problema Fractii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
//φ(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;
}
*/

int main()
{
    int n , s = 0;
    in>>n;
    int partial[n+1];

    for(int i = 1; i <= n ; i++)
        partial[i] = i;

    for(int i = 2;  i <= n ; i++)
        if(partial[i] == i)
        {
            partial[i] --;
            for(int j = 2; j * i <= n ; j++)
                partial[i * j] = partial[i * j] / i * (i - 1);
        }
    for(int i = 1; i <= n; i++)
    {
        s += 2 * partial[i];
    }
    out<<s;
}