Pagini recente » Cod sursa (job #351077) | Cod sursa (job #2221406) | Cod sursa (job #2637911) | Cod sursa (job #330388) | Cod sursa (job #583737)
Cod sursa(job #583737)
#include<stdio.h>
int combinari(int i, int j, int D)
{
int pow = 0;
int k, q;
for(k=j+1, q=k; k<=i; k++,q=k)
while(q%D==0)
{
pow++;
q/=D;
}
for(k=1, q=k; k<=i-j; k++,q=k)
while(q%D==0)
{
pow--;
q/=D;
}
return pow;
}
int main()
{
int R , D, j, c = 0;
FILE *f, *g;
f = fopen("pascal.in", "rt");
g = fopen("pascal.out", "wt");
fscanf(f, "%i%i", &R, &D);
switch (D)
{
case 4:
for(j=0;j<=R/2;j++)
if(combinari(R, j, 2) > 1)
c++;
break;
case 6:
for(j=0;j<=R/2;j++)
if(combinari(R, j, 3) && combinari(R, j, 2))
c++;
break;
default:
for(j=0;j<=R/2;j++)
if(combinari(R, j, D))
c++;
}
if(R%2)
c = 2*c;
else
c = 2*c - 1;
fprintf(g, "%i", c);
fclose(f);
fclose(g);
return 0;
}