Pagini recente » Cod sursa (job #1637069) | Cod sursa (job #1851866) | Cod sursa (job #1133345) | Cod sursa (job #851289) | Cod sursa (job #2015203)
#include <stdio.h>
#include <stdlib.h>
int l1[5000001],l2[5000001];
int main()
{
int r,d,ct=0,i,x,nr,nr1,j,nr2,p,y;
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d%d",&r,&d);
if(d==4) d=2,ct=1;
for(i=1; i<=r; i++)
{
x=d;
if(x==6)
{
x=2;
while(x<=i)
l1[i]+=(i/x),x*=2;
x=3;
while(x<=i)
l2[i]+=(i/x),x*=3;
}
else
{
p=x;
while(p<=i)
l1[i]+=(i/p),p*=x;
}
}
nr=0;
for(i=1; i<=(r-1)/2; i++)
{
x=l1[r]-l1[i]-l1[r-i];
y=l2[r]-l2[i]-l2[r-i];
switch(d)
{
case 2:
if(d==1) x/=2;
if(x>0) nr+=2;
break;
case 3:
if(x>0) nr+=2;
break;
case 5:
if(x>0) nr+=2;
break;
case 6:
if(x>0 && y>0) nr+=2;
break;
}
}
if(r%2==0){
x=l1[r]-l1[i]-l1[r-i];
y=l2[r]-l2[i]-l2[r-i];
switch(d)
{
case 2:
if(d==1) x/=2;
if(x>0) nr+=1;
break;
case 3:
if(x>0) nr+=1;
break;
case 5:
if(x>0) nr+=1;
break;
case 6:
if(x>0 && y>0) nr+=1;
break;
}
}
printf("%d\n",nr);
return 0;
}