Pagini recente » Cod sursa (job #1248430) | Cod sursa (job #3144874) | Cod sursa (job #1386241) | Cod sursa (job #167249) | Cod sursa (job #1744812)
#include <iostream>
#include <cstdio>
using namespace std;
int power[10];
int r, d, sol;
void solve()
{
if (d == 2) {
for (int i = 1; i <= r/2; i++) {
int sus = r-i+1, jos = i;
while (sus % 2 == 0)
power[2]++, sus /= 2;
while (jos % 2 == 0)
power[2]--, jos /= 2;
sol += !!(power[2]);
}
}
else if (d == 3) {
for (int i = 1; i <= r/2; i++) {
int sus = r-i+1, jos = i;
while (sus % 3 == 0)
power[3]++, sus /= 3;
while (jos % 3 == 0)
power[3]--, jos /= 3;
sol += !!(power[3]);
}
}
else if (d == 4) {
for (int i = 1; i <= r/2; i++) {
int sus = r-i+1, jos = i;
while (sus % 2 == 0)
power[2]++, sus /= 2;
while (jos % 2 == 0)
power[2]--, jos /= 2;
sol += !!(power[2] >> 1);
}
}
else if (d == 5) {
for (int i = 1; i <= r/2; i++) {
int sus = r-i+1, jos = i;
while (sus % 5 == 0)
power[5]++, sus /= 5;
while (jos % 5 == 0)
power[5]--, jos /= 5;
sol += !!(power[5]);
}
}
else if (d == 6) {
for (int i = 1; i <= r/2; i++) {
int sus = r-i+1, jos = i;
while (sus % 2 == 0)
power[2]++, sus /= 2;
while (jos % 2 == 0)
power[2]--, jos /= 2;
sus = r-i+1, jos = i;
while (sus % 3 == 0)
power[3]++, sus /= 3;
while (jos % 3 == 0)
power[3]--, jos /= 3;
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;
}