Pagini recente » Cod sursa (job #2960658) | Cod sursa (job #2570076) | Cod sursa (job #746258) | Cod sursa (job #1194560) | Cod sursa (job #248623)
Cod sursa(job #248623)
# include <stdio.h>
long p[7]; int D;
long long R;
int numar(long long k)
{
int nr=0;
long long x;
x=R-k;
while (x%2==0) { x=x/2; p[2]++;}
while (x%3==0) { x=x/3; p[3]++;}
while (x%5==0) { x=x/5; p[5]++;}
x=k+1;
while (x%2==0) { x=x/2; p[2]--;}
while (x%3==0) { x=x/3; p[3]--;}
while (x%5==0) { x=x/5; p[5]--;}
switch (D) {
case 2: nr=p[2]>=1; break;
case 3: nr=p[3]>=1; break;
case 4: nr=p[2]>=2; break;
case 5: nr=p[5]>=1; break;
case 6: nr=(p[2]>=1 && p[3]>=1); break;
}
return nr;
}
int main(){
long long k, nr=0;
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
scanf("%lld %d",&R,&D);
for (k=0;k<(R+1)/2-1;k++)
nr=nr+numar(k);
nr=nr*2;
if (R%2==0) nr=nr+numar(k);
printf("%lld",nr);
return 0;
}