Pagini recente » Cod sursa (job #2599608) | Cod sursa (job #2942101) | Cod sursa (job #466674) | Cod sursa (job #2345276) | Cod sursa (job #796206)
Cod sursa(job #796206)
#include <stdio.h>
int c[5000100];
int d,n;
int legendre(int n,int k)
{
int s=0;
int p=k;
while(p<=n)
{
s+=(n/p);
p=p*k;
}
return s;
}
int a;
int sol;
int main()
{
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d%d",&n,&d);
if(d==6)
a=legendre(n,2)+legendre(n,3);
else if(d==4)
a=legendre(n,2)/2;
else
a=legendre(n,d);
c[0]=0;
for(int i=1;i<=n;i++)
{
if(i%d==0)
{
c[i]=c[i/d]+1;
}
else
c[i]=0;
}
int x=a,y=0;
for(int i=0;i<=n;i++)
{
if((a-x-y)>0)
sol++;
x-=c[n-i];
y+=c[i+1];
}
printf("%d",sol);
return 0;
}