Cod sursa(job #2238513)

Utilizator sorgeTrifescu Stefan-Octavian sorge Data 6 septembrie 2018 02:27:03
Problema Fractii Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;

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

vector<pair<int,int> > descompunereFactoriPrimi(int n){

    vector<pair<int,int> > desc;
    int d=2;
    while(n>1){
        int contor=0;
        while(n%d==0){
            contor++;
            n/=d;
        }

        if(contor>0){
            desc.push_back(make_pair(d,contor));
        }
        d++;
    }
    return desc;
}

int formulaForOne(int n){
    vector<pair<int,int> >desc;
    int result=1;
    desc=descompunereFactoriPrimi(n);

    for(int i=0;i<desc.size();++i)
        result*=(desc[i].first-1)*pow(desc[i].first,desc[i].second-1);

    return result;
}

int result(int n){
    int s=0;
    for(int i=2;i<=n;++i){
        s+=formulaForOne(i)*2;

    }

    return s+1;
}
int main()
{
    int n;
    in>>n;
    out<<result(n);
    return 0;
}