Cod sursa(job #2238104)

Utilizator Iulia14iulia slanina Iulia14 Data 4 septembrie 2018 17:14:47
Problema Mins Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.71 kb
#include <fstream>

using namespace std;
ifstream cin ("mins.in");
ofstream cout ("mins.out");
int v[10];
int main()
{
    long long c,j,h,d,i,ci,cci,p,f,s=1,cnt;
    cin>>c>>d;
    for (i=2;i<=min(c-1,d-1);i++)
    {
        ci=i;
        cci=i;
        f=2;
        p=0;
        while (ci%f==0)
        {
            ci/=f;
            p++;
        }
        if (p!=0)
        {
            cci/=f;
            cci*=(f-1);
        }
        f++;
        while (f*f<=ci&&ci!=1)
        {
            p=0;
            while (ci%f==0)
            {
                ci/=f;
                p++;
            }
            if (p!=0)
            {
                cci/=f;
                cci*=(f-1);
            }
            f+=2;
        }
        if (ci!=1)
        {
            cci*=(ci-1);
            cci/=ci;
        }
        s+=2*cci;
    }
    for (i=min(c-1,d-1)+1;i<=max(c-1,d-1);i++)
    {
        cnt=0;
        ci=i;
        cci=i;
        f=2;
        while (ci%f==0)
        {
            ci/=f;
            v[1]=f;
            cnt=1;
        }
        //cnt=1;
        f=3;
        while (f*f<=ci&&ci!=1)
        {
            p=0;
            while (ci%f==0)
            {
                ci/=f;
                p++;
            }
            if (p!=0)
                v[++cnt]=f;
            f+=2;
        }
        if (ci!=1)
            v[++cnt]=ci;
        cci=0;
        for (j=1;j<=min(c-1,d-1);j++)
        {
            int ok=0;
            for (h=1;h<=cnt;h++)
            {
                if (j%v[h]==0)
                    ok=1;
            }
            if (ok==0)
                s++;
        }
    }
    cout<<s;
    return 0;
}