Cod sursa(job #774330)
| Utilizator | Data | 4 august 2012 12:34:39 | |
|---|---|---|---|
| Problema | Pascal | Scor | 20 |
| Compilator | c | Status | done |
| Runda | Arhiva de probleme | Marime | 0.55 kb |
#include<stdio.h>
#include<math.h>
int fact(int r)
{
if (r==1 || r==0) return 1;
else return r*fact(r-1);
}
int main()
{
FILE *f=fopen("pascal.in","r"),*g=fopen("pascal.out","w");
long int r,nr=0,j,a,i;
int d;
fscanf(f,"%ld %d",&r,&d);
for(j=1;j<=r/2;j++)
{a=r-j+1;
for(i=2;i<=j;i++)
a*=r-j+i;
a/=fact(j);
if(a%d==0) nr+=2;
}
if(r%2==0) nr--;
fprintf(g,"%ld",nr);
fclose(f);
fclose(g);
return 0;
}
