Cod sursa(job #2856470)

Utilizator MTAxD12Preda Andrei MTAxD12 Data 23 februarie 2022 21:44:34
Problema Fractii Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<bits/stdc++.h>
using namespace std;

ifstream f("fractii.in");
ofstream g("fractii.out");

long long int n, x[1000001], uz[1000001];
long int nrFractii;


bool Ok(int i, int k)
{
    if(k == 1)
        return true;
    if(uz[i])
        return false;

    int n = x[k], m = x[k-1];

    while(m != 0)
    {
        int r = n % m;
        n = m;
        m = r;
    }

    if(n == 1)
        return true;

    return false;
}

void Permutari(int k)
{
    for(int i = 1; i <= n; i++)
    {
        x[k] = i;
        if(Ok(i, k))
        {
            if(k == 2)
                nrFractii++;
            else
                Permutari(k+1);
        }
        uz[i] = 0;
    }
}

int main()
{
    f>>n;

    Permutari(1);

    g<<nrFractii;

    f.close();
    g.close();
    return 0;
}