Cod sursa(job #2476813)

Utilizator ianiIani Biro iani Data 19 octombrie 2019 11:41:00
Problema Fractii Scor 30
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int main()
{
    int n,nr=1;
    fin>>n;
    for (int i=2;i<=n;i++)
    {
        long long int prod=i;
        int x=i;
        if (x%2==0)
            prod=prod/2;
        while (x%2==0)
            x/=2;
        for (int d=3;d*d<=x;d+=2)
        {
            if (x%d==0)
                prod=prod*(d-1)/d;
            while(x%d==0)
                x/=d;
        }
        if (x>1)
            prod=prod*(x-1)/x;
        prod*=2;
        nr+=prod;
    }
    fout<<nr;
}