Pagini recente » Cod sursa (job #232026) | Cod sursa (job #2714592) | Cod sursa (job #2515762) | Cod sursa (job #2736020) | Cod sursa (job #2835644)
#include <fstream>
#include <vector>
using namespace std;
const int dim = 5000001;
vector<int> v2(dim), v3(dim), v5(dim);
int res[6] = { 0 };
int d, r, ans, i;
ifstream f("pascal.in");
ofstream g("pascal.out");
int main()
{
for (f >> r >> d, i = 1; i <= r; ++i)
{
if (i % 2 == 0) v2[i] = v2[i / 2] + 1;
if (i % 3 == 0) v3[i] = v3[i / 3] + 1;
if (i % 5 == 0) v5[i] = v5[i / 5] + 1;
}
for (i = 2; i <= r; ++i)
{
v2[i] += v2[i - 1];
v3[i] += v3[i - 1];
v5[i] += v5[i - 1];
}
for (i = 0; i <= r; ++i)
{
res[2] = v2[r] - v2[i] - v2[r - i];
res[3] = v3[r] - v3[i] - v3[r - i];
res[5] = v5[r] - v5[i] - v5[r - i];
switch (d)
{
case 2:
if (res[2]) ++ans;
break;
case 3:
if (res[3]) ++ans;
break;
case 4:
if (res[4] > 1) ++ans;
break;
case 5:
if (res[5]) ++ans;
break;
case 6:
if (res[2] && res[3]) ++ans;
break;
default:
break;
}
}
g << ans;
}