Pagini recente » Cod sursa (job #107991) | Cod sursa (job #763268) | Cod sursa (job #2141959) | Cod sursa (job #1691588) | Cod sursa (job #2923436)
#include <iostream>
using namespace std;
const int nmax = 5000005;
uint8_t c[nmax][3];
void build()
{
for(int i = 2;i < nmax;++i)
{
if(i % 2 == 0)
c[i][0] = c[i / 2][0] + 1;
if(i % 3 == 0)
c[i][1] = c[i / 3][1] + 1;
if(i % 5 == 0)
c[i][2] = c[i / 5][2] + 1;
}
}
int solve(int r, int d)
{
int pw[3] = {0}, ans = 0, nr = r;
for(int i = 1;i <= r;++i)
{
for(int j = 0;j <= 2;++j)
{
pw[j] += c[nr][j];
pw[j] -= c[i][j];
}
--nr;
bool ok = true;
for(int j = 0;j <= 2;++j)
if(pw[j] < c[d][j])
{
ok = false;
break;
}
if(ok)
++ans;
}
return ans;
}
int main() {
build();
int r, d;
freopen("pascal.in", "r", stdin);
freopen("pascal.out", "w", stdout);
cin >> r >> d;
cout << solve(r, d);
}