Cod sursa(job #1050515)

Utilizator DGVanceaDragos Gabriel Vancea DGVancea Data 8 decembrie 2013 17:41:11
Problema Pascal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>

using namespace std;

int r,d,nr,c,n,n2;

int num(int x,int a)
{
    int nr=0;
    while(x%a==0)
    {
        nr++;
        x/=a;
    }
    return nr;
}
int rez()
{int p=r,u=1;
    if(d==2||d==3||d==5)
    {
        for(int i=1;i<=r/2;i++)
        {
            n+=num(p,d)-num(u,d);
            p--;u++;
            if(n)c+=2;
            if(r%2==0 && n && i==r/2)
                c--;
        }
    }
    else if(d==4)
    {
        for(int i=1;i<=r/2;i++)
        {
            n+=num(p,2)-num(u,2);
            p--;u++;
            if(n>1)c+=2;
            if(r%2==0 && n>1 && i==r/2)
                c--;
        }


    }
else if(d==6)
    {
        for(int i=1;i<=r/2;i++)
        {
            n+=num(p,2)-num(u,2);
            n2+=num(p,3)-num(u,3);
            p--;u++;
            if(n>0&&n2>0)c+=2;
            if(r%2==0 && n && n2 && i==r/2)
                c--;
        }


    }

return c;
}

int main()
{
   ifstream fin("pascal.in");
   ofstream fout("pascal.out");
   fin>>r>>d;
   fout<<rez();
      return 0;
}