Pagini recente » Cod sursa (job #2512056) | Cod sursa (job #2685846) | Cod sursa (job #893514) | Cod sursa (job #3150625) | Cod sursa (job #1749181)
#include<cstdio>
int main ()
{freopen ("pascal.in","r",stdin);
freopen ("pascal.out","w",stdout);
int n,d,x,y,z,p,s,i,j,a,b,c;
scanf("%d%d",&n,&d);
s=0;
x=0;
p=d;
if(d==2||d==3||d==5)
for(i=1;p<=n;i++)
{x+=n/p;
p*=d;
}
if(d==4)
{p=2;
for(i=1;p<=n;i++)
{x+=n/p;
p*=2;
}
}
if(d==6)
{p=2;
for(i=1;p<=n;i++)
{x+=n/p;
p*=2;
}
p=3;
a=0;
for(i=1;p<=n;i++)
{a+=n/p;
p*=3;
}
}
if(d==2||d==4)
{for(i=1;i<=(n-1)/2;i++)
{y=0;
p=2;
for(j=1;p<=n-i;j++)
{y+=(n-i)/p;
p*=2;
}
z=0;
p=2;
for(j=1;p<=i;j++)
{z+=i/p;
p*=2;
}
if(d==2&&x-y-z>=1)
s++;
else
if(x-y-z>=2)
s++;
}
s*=2;
if(n%2==0)
{y=0;
p=2;
for(j=1;p<=n-i;j++)
{y+=(n-i)/p;
p*=2;
}
z=0;
p=2;
for(j=1;p<=i;j++)
{z+=i/p;
p*=2;
}
if(d==2&&x-y-z>=1)
s++;
else
if(x-y-z>=2)
s++;
}
}
if(d==3||d==5)
{for(i=1;i<=(n-1)/2;i++)
{y=0;
p=d;
for(j=1;p<=n-i;j++)
{y+=(n-i)/p;
p*=d;
}
z=0;
p=d;
for(j=1;p<=i;j++)
{z+=i/p;
p*=d;
}
if(x-y-z>=1)
s++;
}
s*=2;
if(n%2==0)
{y=0;
p=d;
for(j=1;p<=n-i;j++)
{y+=(n-i)/p;
p*=d;
}
z=0;
p=d;
for(j=1;p<=i;j++)
{z+=i/p;
p*=d;
}
if(x-y-z>=1)
s++;
}
}
if(d==6)
{for(i=1;i<=(n-1)/2;i++)
{y=0;
p=2;
for(j=1;p<=n-i;j++)
{y+=(n-i)/p;
p*=2;
}
z=0;
p=2;
for(j=1;p<=i;j++)
{z+=i/p;
p*=2;
}
b=0;
p=3;
for(j=1;p<=n-i;j++)
{b+=(n-i)/p;
p*=3;
}
c=0;
p=3;
for(j=1;p<=i;j++)
{c+=i/p;
p*=3;
}
if(x-y-z>=1&&a-b-c>=1)
s++;
}
s*=2;
if(n%2==0)
{y=0;
p=d;
for(j=1;p<=n-i;j++)
{y+=(n-i)/p;
p*=d;
}
z=0;
p=d;
for(j=1;p<=i;j++)
{z+=i/p;
p*=d;
}
b=0;
p=3;
for(j=1;p<=n-i;j++)
{b+=(n-i)/p;
p*=3;
}
c=0;
p=3;
for(j=1;p<=i;j++)
{c+=i/p;
p*=3;
}
if(x-y-z>=1&&a-b-c>=1)
s++;
}
}
printf("%d",s);
return 0;
}