Cod sursa(job #2190854)

Utilizator dzNaLxDzen Alex dzNaLx Data 31 martie 2018 21:12:01
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("fractii.in");
ofstream g("fractii.out");
int cmmdc(int a,int b)
{
    if(a==b)
        return 0;
    while(a!=b)
        if(a>b)
            a-=b;
        else
            b-=a;
    if(a==1 && b==1)
        return 1;
    else
        return a;
}
int nrFractii(int p,int q,int x)
{
    p=2,q=1;
    int nr=x+1;
    bool ok=true;
    while(ok)
    {
        if(q==x&&cmmdc(p,q)==1)
        {
            p++;
            q=1;
            nr++;
        }
        else
        if(q==x&&cmmdc(p,q)!=1)
        {
            p++;
            q=1;
        }
        else
        if(cmmdc(p,q)==1)
        {
            nr++;
            q++;
        }
        else
            q++;
    if(p==x&&q==x-1)
        ok=false;
    }
    return nr;
}
int main()
{
    int x,p,q;
    while(f>>x)
        g<<nrFractii(p,q,x)<<endl;
    f.close();
    g.close();
    return 0;
}