Pagini recente » Cod sursa (job #2946662) | Borderou de evaluare (job #731497) | Borderou de evaluare (job #1293911) | Cod sursa (job #3186903) | Cod sursa (job #505108)
Cod sursa(job #505108)
#include<stdio.h>
long long fact(long long k,long long lim)
{
long long i,p=1;
if(lim==1)
return 1;
for(i=k;i<=lim;i++)
p*=i;
return p;
}
long long pascal(long long r,long long i)
{
if(r-i>i)
return fact(r-i+1,r) / fact(2,i) ;
else
return fact(i+1,r) / fact(2,r-i) ;
}
long long R,nr,n;
int D;
int main()
{
int i,lim;
freopen("pascal.in","r",stdin);
freopen("pascal.out","w",stdout);
scanf("%lld%d",&R,&D);
if(R==0 || R==1)
{
printf("0\n");
return 0;
}
if(R%2==1)
lim=R/2;
else
{
lim=R/2;
nr--;
}
for(i=1;i<=lim;i++)
{
n= pascal( R , i );
if( n % D == 0 )
nr+=2;
}
printf("%lld\n",nr);
return 0;
}