Pagini recente » Cod sursa (job #780400) | Cod sursa (job #1379492) | Cod sursa (job #2529308) | Cod sursa (job #2761939) | Cod sursa (job #3260303)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("pascal.in");
ofstream g ("pascal.out");
int n, k, divi[312], exp[5000005][3];
int main()
{
f >> n >> k;
while (k%2==0)
{
k/=2;
divi[0]++;
}
while (k%3==0)
{
k/=3;
divi[1]++;
}
while (k%5==0)
{
k/=5;
divi[2]++;
}
for (int i=1;i<=n;i++)
{
if (i%2==0)
{
exp[i][0]=exp[i/2][0]+1;
}
if (i%3==0)
{
exp[i][1]=exp[i/3][1]+1;
}
if (i%5==0)
{
exp[i][2]=exp[i/5][2]+1;
}
}
for (int k=0;k<=2;k++)
{
for (int i=1;i<=n;i++)
{
exp[i][k]+=exp[i-1][k];
}
}
int cnt=0;
for (int i=0;i<=n;i++)
{
int e1=exp[n][0]-exp[i][0]-exp[n-i][0];
int e2=exp[n][1]-exp[i][1]-exp[n-i][1];
int e3=exp[n][2]-exp[i][2]-exp[n-i][2];
if (e1>=divi[0] && e2>=divi[1] && e3>=divi[2])
{
cnt++;
}
}
g << cnt;
return 0;
}