Pagini recente » Cod sursa (job #881858) | Cod sursa (job #3169318) | Cod sursa (job #2797097) | Cod sursa (job #3210049) | Cod sursa (job #1470786)
#include<fstream>
using namespace std;
ifstream fin("pascal.in");
ofstream fout("pascal.out");
long long r,d,p,sol,P[7];
inline long long num(long long N, long long D)
{
long long nr=0;
for (long long i=D;i<=N;i*=D)
nr+=N/i;
return nr;
}
bool num(long long N, long long M, long long D)
{
if (D==2 || D==3 || D==5)
return P[D]>num(N,D)+num(M,D);
if (D==4)
return P[2]>1+num(N,2)+num(M,2);
return (P[2]>num(N,2)+num(M,2) && P[3]>num(N,3)+num(M,3));
}
int main()
{
long long i;
fin>>r>>d;
P[2]=num(r,2), P[3]=num(r,3), P[5]=num(r,5);
if (r&1)
{
for (i=1;i<=(r>>1);++i)
if (num(i,r-i,d))
++sol;
sol<<=1;
}
else
{
for (i=1;i<(r>>1);++i)
if (num(i,r-i,d))
++sol;
sol<<=1;
if(num(r>>1,r>>1,d))
++sol;
}
fout<<sol<<"\n";
return 0;
}