Pagini recente » Cod sursa (job #1879200) | Cod sursa (job #1654747) | Cod sursa (job #502331) | Cod sursa (job #2389684) | Cod sursa (job #858343)
Cod sursa(job #858343)
#include <cstdio>
#include <cassert>
#define dim 5000005;
int v[6],dp[6];
int asdp(int k)
{
while(k%2==0)
{
--v[2];
k/=2;
}
while(k%3==0)
{
--v[3];
k/=3;
}
while(k%5==0)
{
--v[5];
k/=5;
}
}
int asdm(int k)
{
while(k%2==0)
{
++v[2];
k/=2;
}
while(k%3==0)
{
++v[3];
k/=3;
}
while(k%5==0)
{
++v[5];
k/=5;
}
}
int main()
{
int i=1,n=0,d=0,sol=0,aux=0,m=0;
assert(freopen("pascal.in","r",stdin));
assert(freopen("pascal.out","w",stdout));
assert(scanf("%d%d",&n,&d));
m=n/2;
while(d%2==0)
{
++dp[2];
d/=2;
}
while(d%3==0)
{
++dp[3];
d/=3;
}
while(d%5==0)
{
++dp[5];
d/=5;
}
for(i=1; i<m+1; ++i)
{
asdm(n-i+1);
asdp(i);
if(v[2]>=dp[2] && v[3]>=dp[3] && v[5]>=dp[5])
{
if(n==i+i)
++sol;
else
sol=sol+2;
}
}
assert(printf("%d\n",sol));
return 0;
}