Pagini recente » Cod sursa (job #1511250) | Cod sursa (job #1006840) | Statistici Badulescu Dan Andrei (rocandu16) | Monitorul de evaluare | Cod sursa (job #239964)
Cod sursa(job #239964)
#include <algorithm>
using namespace std;
int r,d,nrt;
int prim (int d)
{
if (d==2 || d==3 || d==5)
return 1;
else
return 0;
}
int main ()
{
freopen ("pascal.in","r",stdin);
freopen ("pascal.out","w",stdout);
int i,aux,nr1,nr2,nr3;
scanf ("%d%d",&r,&d);
if (prim (d))
{
for (aux=r, nr1=0; aux; nr1+=aux/=d);
if (r%2==1)
for (i=0; i<=r/2; ++i)
{
for (aux=r-i, nr2=0; aux; nr2+=aux/=d);
for (aux=i, nr3=0; aux; nr3+=aux/=d);
if (nr1>nr2+nr3)
nrt+=2;
}
else
{
for (i=0; i<r/2; ++i)
{
for (aux=r-i, nr2=0; aux; nr2+=aux/=d);
for (aux=i, nr3=0; aux; nr3+=aux/=d);
if (nr1>nr2+nr3)
nrt+=2;
}
for (aux=r-r/2, nr2=0; aux; nr2+=aux/=d);
for (aux=r/2, nr3=0; aux; nr3+=aux/=d);
if (nr1>nr2+nr3)
nrt++;
}
}
else if (d==4)
{
d/=2;
for (aux=r, nr1=0; aux; nr1+=aux/=d);
if (r%2==1)
for (i=0; i<=r/2; ++i)
{
for (aux=r-i, nr2=0; aux; nr2+=aux/=d);
for (aux=i, nr3=0; aux; nr3+=aux/=d);
if (nr1>nr2+nr3 && (nr1-nr2-nr3)%2==0)
nrt+=2;
}
else
{
for (i=0; i<r/2; ++i)
{
for (aux=r-i, nr2=0; aux; nr2+=aux/=d);
for (aux=i, nr3=0; aux; nr3+=aux/=d);
if (nr1>nr2+nr3)
nrt+=2;
}
for (aux=r-r/2, nr2=0; aux; nr2+=aux/=d);
for (aux=r/2, nr3=0; aux; nr3+=aux/=d);
if (nr1>nr2+nr3 && (nr1-nr2-nr3)%2==0)
nrt++;
}
}
printf ("%d",nrt);
return 0;
}