Cod sursa(job #1829252)

Utilizator medicinedoctoralexandru medicinedoctor Data 14 decembrie 2016 18:07:11
Problema Fractii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream cin("fractii.in");
ofstream cout("fractii.out");

vector <int> dv(int x) //divizori
{
    int i=2;
    vector <int> a;
    while (x>1)
    {
        if (x % i == 0)
        {
            if (a.size()==0 || a[a.size()-1]!=i) a.push_back(i);
            x/=i;
        }
        if (x % i !=0) i++;
    }
    return a;
}

main()
{
    int n,x,c;
    vector <int> a;
    cin >> n;
    c=n;
    for (int i=2; i<=n; i++)
    {
        a=dv(i);
        x=n;
        for (int j=a.size()-1; j>=0 && x>0; j--)
            x-=x/a[j];
        if (a.size()>1) cout << i << ' '<< x << endl;
        c+=x;
    }
    cout << c;
}