Pagini recente » Cod sursa (job #461120) | Cod sursa (job #1185559) | Cod sursa (job #1506403) | Cod sursa (job #1327887) | Cod sursa (job #1000520)
#include <iostream>
#include <fstream>
using namespace std;
int R, D;
int sol;
int nrdiv;
int Exp[6];
struct DIV
{
int d, e;
};
DIV a[3];
inline void Read()
{
ifstream f ("pascal.in");
f>>R>>D;
f.close();
}
inline void Desc(int x, int val)
{
while (x%2 == 0)
x/=2, Exp[2] += val;
while (x%3 == 0)
x/=3, Exp[3] += val;
while (x%5 == 0)
x/=5, Exp[5] += val;
}
inline void Solve()
{
int i, lim = (R+1) / 2 - 1;
for (i = 1; i<=lim; ++i)
{
/// * (R-i) / (i+1)
Desc(R-i+1, 1);
Desc(i, -1);
if ((D == 2 && Exp[2]) || (D == 3 && Exp[3]) || (D == 4 && Exp[2] >= 2) || (D==5 && Exp[5]) || (D == 6 && Exp[2] && Exp[3]))
sol += 2;
}
if (R % 2 == 0)
{
Desc(R-i+1, 1);
Desc(i, -1);
if ((D == 2 && Exp[2]) || (D == 3 && Exp[3]) || (D == 4 && Exp[2] >= 2) || (D==5 && Exp[5]) || (D == 6 && Exp[2] && Exp[3]))
++sol;
}
}
inline void Write()
{
ofstream g("pascal.out");
g<<sol<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}