Pagini recente » Cod sursa (job #2765497) | Cod sursa (job #1744807)
#include <iostream>
#include <cstdio>
using namespace std;
int power[10];
int r, d, sol;
void solve()
{
for (int i = 1; i <= r/2; i++) {
int st = (d==4||d==6) ? 2 : d;
for (int j = st; j <= (d==6 ? 3 : st); j++) {
int sus = r-i+1, jos = i;
while (sus % j == 0)
power[j]++, sus /= j;
while (jos % j == 0)
power[j]--, jos /= j;
}
if (d == 2) sol += !!(power[2]);
else if (d == 3) sol += !!(power[3]);
else if (d == 4) sol += !!(power[2] >> 1);
else if (d == 5) sol += !!(power[5]);
else sol += !!power[2] && !!power[3];
}
if (sol && !(r&1))
sol = (sol << 1) - 1;
else
sol <<= 1;
}
int main()
{
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
scanf("%d %d", &r, &d);
solve();
printf("%d", sol);
return 0;
}