Pagini recente » Cod sursa (job #2509155) | Cod sursa (job #2061021) | Cod sursa (job #1332161) | Cod sursa (job #1434800) | Cod sursa (job #2911519)
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <stack>
#include <map>
#include <cstring>
#include <climits>
#include <unordered_map>
#define NMAX 5000003
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
int n, k;
int p2[NMAX],p3[NMAX],p5[NMAX];
int main()
{
fin >> n >> k;
for (int i = 2; i <= n; i++)
{
if (i % 2 == 0)
{
p2[i] = p2[i / 2] + 1;
}
if (i % 3 == 0)
{
p3[i] = p3[i / 3] + 1;
}
if (i % 5 == 0)
{
p5[i] = p5[i / 5] + 1;
}
}
int sol = 0;
int s2 = 0, s3 = 0, s5 = 0;
for (int i = 1; i <= n; i++)
{
s2 += p2[n - i + 1] - p2[i];
s3 += p3[n - i + 1] - p3[i];
s5 += p5[n - i + 1] - p5[i];
if (k == 2 && s2 != 0)
{
sol++;
}
else if (k == 3 && s3 != 0)
{
sol++;
}
else if (k == 4 && s2 >= 2)
{
sol++;
}
else if (k == 5 && s5 != 0)
{
sol++;
}
else if (k == 6 && s2 != 0 && s3 != 0)
{
sol++;
}
}
fout << sol;
return 0;
}