Pagini recente » Cod sursa (job #1254599) | Cod sursa (job #3176810) | Cod sursa (job #2164710) | Cod sursa (job #1800561) | Cod sursa (job #505163)
Cod sursa(job #505163)
#include<stdio.h>
int putere(long long x,int d)
{
int p=0;
if(d>x)
return 0;
while(x)
{
p+=x/d;
x/=d;
}
return p;
}
bool diviz=false,par=false;
int D,vd[6],vr[6],vi[6],vri[6],nr;
long long R;
int main()
{
int i,lim,j;
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%lld%d",&R,&D);
//printf("%d",p);]
if(D%2==0) vd[2]=1;
if(D==4) vd[2]=2;
if(D%3==0) vd[3]=1;
if(D==5) vd[5]=1;
vr[2]=putere(R,2);
vr[3]=putere(R,3);
vr[5]=putere(R,5);
par=false;
if(R%2==1)
lim=R/2;
else
{
par=true;
lim=R/2;
//nr--;
}
for(i=1;i<=lim;i++)
{
vri[2]=putere(R-i,2);vri[3]=putere(R-i,3);vri[5]=putere(R-i,5);
vi[2]=putere(i,2);vi[3]=putere(i,3);vi[5]=putere(i,5);
for(j=2;j<=5;j++)
{
if(j==4)
j++;
if(vd[j]>0)
if(vr[j]-vi[j]-vri[j]-vd[j]>=0)
diviz=true;
else
{
diviz=false;
break;
}
}
if(diviz==true)
{
if(i==lim && par==true)
nr--;
nr+=2;
diviz=false;
}
vi[2]=0;vi[3]=0;vi[5]=0;
vri[2]=0;vri[3]=0;vri[5]=0;
}
//if(par==true)
// nr--;
printf("%d\n",nr);
return 0;
}