Pagini recente » Cod sursa (job #1840539) | Cod sursa (job #2880983) | Cod sursa (job #2519455) | Cod sursa (job #3282722) | Cod sursa (job #2232505)
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int ft[5000005];
int ftr[5000005];
int v[5000005];
int legend_re (int k, int l)
{
int s = 0, cp = l;
while (k / l > 0)
{
s += k / l;
l *= cp;
}
return s;
}
int main()
{
freopen ("pascal.in", "r", stdin);
freopen ("pascal.out", "w", stdout);
int r, d;
int n = 0;
scanf ("%d%d", &r, &d);
int i;
if (d == 4)
{
for (i = 0; i <= r; i ++)
{
if (i == 0)
v[i] = legend_re (1, 2);
else
v[i] = legend_re (i, 2);
//printf ("%d\n", v[i]);
}
for (i = 0; i <= r; i ++)
if (v[r] - v[i] - v[r - i] > 1)
n ++;
printf ("%d", n);
}
else
{
if (d != 6)
{
for (i = 0; i <= r; i ++)
{
if (i == 0)
v[i] = legend_re (1, d);
else
v[i] = legend_re (i, d);
//printf ("%d\n", v[i]);
}
for (i = 0; i <= r; i ++)
if (v[r] - v[i] - v[r - i] > 0)
n ++;
printf ("%d", n);
}
else
{
for (i = 0; i <= r; i ++)
{
ft[i] = legend_re (i, 2);
ftr[i] = legend_re (i, 3);
//printf ("%d %d\n", ft[i], ftr[i]);
}
for (i = 0; i <= r; i ++)
{
if (ft[r] - ft[i] - ft[r - i] > 0 and ftr[r] - ftr[i] - ftr[r - i] > 0)
n ++;
}
printf ("%d", n);
}
}
return 0;
}