Pagini recente » Cod sursa (job #73234) | Cod sursa (job #1404931) | Cod sursa (job #2875958) | Cod sursa (job #1369126) | Cod sursa (job #448146)
Cod sursa(job #448146)
#include <stdio.h>
#define N 5000001
int scor[N];
int scor2[N];
int main ()
{int n,d,i,j,ct;
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%d %d",&n,&d);
if(d==2||d==3||d==5)
{for (i=1;i<=n;i++)
{for (j=d;j<=i;j*=d)
{scor[i]+=i/j;
}
}
}
else if(d==4)
{for (i=1;i<=n;i++)
{for (j=2;j<=i;j*=2)
{scor[i]+=i/j;
}
}
}
else if(d==6)
{for (i=1;i<=n;i++)
{for (j=2;j<=i;j*=2)
{scor[i]+=i/j;
}
for (j=3;j<=i;j*=3)
{scor2[i]+=i/j;
}
}
}
if(d==2||d==3||d==5)
{for (ct=0,i=1;i<=(n-1)/2;i++)
{if((scor[n]-scor[i]-scor[n-i])>0)
{ct++;
}
}
ct*=2;
if(n%2==0)
{if((scor[n]-scor[n/2]-scor[n/2])>0)
{ct++;
}
}
}
else if(d==4)
{for (ct=0,i=1;i<=(n-1)/2;i++)
{if((scor[n]-scor[i]-scor[n-i])>1)
{ct++;
}
}
ct*=2;
if(n%2==0)
{if((scor[n]-scor[n/2]-scor[n/2])>1)
{ct++;
}
}
}
else//6
{for (ct=0,i=1;i<=(n-1)/2;i++)
{if((scor[n]-scor[i]-scor[n-i])>0&&(scor2[n]-scor2[i]-scor2[n-i])>0)
{ct++;
}
}
ct*=2;
if(n%2==0)
{if((scor[n]-2*scor[n/2])>0&&(scor2[n]-2*scor2[n/2])>0)
{ct++;
}
}
}
printf("%d",ct);
return 0;
}