Cod sursa(job #164303)
#include <stdio.h>
#define i r
#define FORMULA (long) ((long long)(_fact(i,j)/fact(j))))
FILE *f,*g;
long r,d;
void citire();
void numara();
int main(){
f=fopen("pascal.in","r");
g=fopen("pascal.out","w");
citire();
numara();
fclose(g);
return 0;
}
long long _fact(long i, long j){
long long ret=j;
for(int k=j+1;k<=i;++k){
ret*=k;
}
return ret;
}
long long fact(long k){
long long ret=1;
for(int i=2;i<=k;++i){
ret*=i;
}
return ret;
}
void citire(){
fscanf(f,"%ld%ld",&r,&d);
}
void numara(){
long nr=0,j;
for(j=1;j<r/2;++j){
nr+=(( (long)( (long long) _fact(i,j)/fact(j) ) %d)==0)*2;
}
if(r%2){
nr+=(( (long)( (long long) _fact(i,j)/fact(j) ) %d)==0)*2;
}else{
nr+=(( (long)( (long long) _fact(i,j)/fact(j) ) %d)==0);
}
fprintf(g,"%ld",nr);
}