Pagini recente » Cod sursa (job #1653406) | Cod sursa (job #2201497) | Cod sursa (job #3171507) | Cod sursa (job #1286442) | Cod sursa (job #1205942)
#include<stdio.h>
int fact[6];
char cateFact[5000001][6];
int main(){
FILE *fin,*fout;
fin=fopen("pascal.in","r");
fout=fopen("pascal.out","w");
int r,d;
fscanf(fin,"%d%d",&r,&d);
int cont=0,nr=2,j,i;
while(nr*nr<=d){
while(d%nr==0)
d/=nr,fact[nr]++;
nr++;
}
if(d!=1)
fact[d]++;
for(i=1;i<=r;i++){
int j,c=i;
for(j=2;j<=5;j++){
cateFact[i][j]=cateFact[i-1][j];
while(fact[j]!=0&&c%j==0)
c/=j,cateFact[i][j]++;
}
}
int sol=0,ok;
for(i=0;i<=r/2;i++){
ok=1;
for(j=2;j<=5;j++)
if(cateFact[r][j]-cateFact[r-i][j]-cateFact[i][j]<fact[j])
ok=0;
if(ok)
sol++;
}
if(ok)
sol--;
fprintf(fout,"%d",sol*2+ok);
return 0;
}