Pagini recente » Cod sursa (job #3248918) | Cod sursa (job #2354136) | Cod sursa (job #3190278) | Cod sursa (job #2621498) | Cod sursa (job #239972)
Cod sursa(job #239972)
#include <stdio.h>
int r,d,rez;
int e[5000005];
void calcul (int x)
{
int y=x,nr=0;
while (x)
{
nr+=x/d;
x/=d;
}
e[y]=nr;
}
void check_prim (int n)
{
int i;
for (i=0; i<=n; ++i)
{
if (!e[r-i])
calcul (r-i);
if (!e[i])
calcul (i);
if (e[r]>e[r-i]+e[i])
rez+=2;
}
}
int main ()
{
freopen ("pascal.in","r",stdin);
freopen ("pascal.out","w",stdout);
scanf ("%d%d",&r,&d);
calcul (r);
if (r%2==1 /*&& (d==2 || d==3 ||d==5)*/)
check_prim (r/2);
else if (r%2==0 /*&& (d==2 || d==3 ||d==5)*/)
{
check_prim (r/2-1);
if (!e[r/2])
calcul (r/2);
if (e[r]>2*e[r/2])
++rez;
}
printf ("%d",rez);
return 0;
}