Pagini recente » Cod sursa (job #84142) | Cod sursa (job #1448408) | Cod sursa (job #1530441) | Cod sursa (job #1905658) | Cod sursa (job #1658419)
#include <fstream>
using namespace std;
ifstream f("pascal.in");
ofstream g("pascal.out");
int n, d, d1, i, sol;
int dd[6], df[6];
void desc_frac(int x, int k)
{
while (x%2 == 0 && x)
df[2]++, x /= 2;
while (x%3 == 0 && x)
df[3]++, x /= 3;
while (x%5 == 0 && x)
df[5]++, x /= 5;
while (k%2 == 0 && k)
df[2]--, k /= 2;
while (k%3 == 0 && k)
df[3]--, k /= 3;
while (k%5 == 0 && k)
df[5]--, k /= 5;
}
void desc_d()
{
while (d%2 == 0 && d)
dd[2]++, d /= 2;
while (d%3 == 0 && d)
dd[3]++, d /= 3;
while (d%5 == 0 && d)
dd[5]++, d /= 5;
}
int main()
{
f >> n >> d;
d1 = d;
desc_d();
for (i = 1; i <= n/2; i++)
{
desc_frac(n-i+1, i);
if (df[2] >= dd[2] && df[3] >= dd[3] && df[5] >= dd[5])
{
if (n == 2*i)
sol++;
else
sol += 2;
}
}
g << sol;
return 0;
}