Cod sursa(job #1380539)

Utilizator EnachescuAlinEnachescu Alin EnachescuAlin Data 8 martie 2015 00:55:11
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

bool prim(int x)
{
    int y = x / 2;
    for (int i = 2; i <= y; i++)
        if (x % i == 0)
            return false;

    return true;
}

int reductibile(int x, int n)
{
    if (prim(x))
        return n / x;

    int y = x / 2;
    int r = 0;
    int p = 1;
    for (int i = 2; i <= y; i++)
        if (x % i == 0)
            if (prim(i))
            {
                if (p > 1)
                    r += (n / i + n % i) / p;
                else
                {
                    r += (n / i) / p;
                }
                p = i;
            }
    return r;
}

int main(void)
{
    int n;
    ifstream f("fractii.in", ifstream::in);
    ofstream g("fractii.out", ofstream::out);
    f >> n;

    int raspuns = n;
    for (int i = 2; i <= n; i++)
    {
        raspuns += n - reductibile(i, n);
    }

    g << raspuns;

    f.close();
    g.close();

    return 0;
}