Pagini recente » Cod sursa (job #13682) | Cod sursa (job #3265312) | Cod sursa (job #26525) | Cod sursa (job #54413) | Cod sursa (job #477942)
Cod sursa(job #477942)
#include <stdio.h>
int n, x, f[7], d[7];
void desc (int x, int inc)
{
int i;
while ((x & 1) == 0)
{
f[2] += inc;
x >>= 1;
}
for (i = 3; i <= 5; i += 2)
while (x % i == 0)
{
f[i] += inc;
x /= i;
}
}
int calc (int k)
{
desc (n - k, 1);
desc (k + 1, -1);
for (int i = 2; i <= 5; i ++)
if (d[i] > f[i])
return 0;
return 1;
}
int main ()
{
freopen ("pascal.in", "r", stdin);
freopen ("pascal.out", "w", stdout);
scanf ("%d %d", &n, &x);
int i, sol = 0;
for (i = 2; i <= 5; i ++)
while (x % i == 0)
{
d[i] ++;
x /= i;
}
for (i = 0; i <= (n + 1) / 2 - 2; i ++)
sol += calc (i);
sol = sol * 2;
if (n % 2 == 0)
sol += calc (i);
printf ("%d\n", sol);
return 0;
}