Pagini recente » Cod sursa (job #2093262) | Cod sursa (job #2885769) | Monitorul de evaluare | Cod sursa (job #724484) | Cod sursa (job #2634668)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("pascal.in");
ofstream out("pascal.out");
inline int nrAparitii(int fact, int val)
{
int rez=0;
long long v=val;
while(v<=fact)
{
rez+=fact/v;
v*=val;
}
return rez;
}
int n, d, cnt;
int main()
{
in>>n>>d;
if(d==2||d==3||d==5)
{
int nr=0;
for(int i=1; i<=n; i++)
{
int val=i;
while(val>1&&val%d==0) nr++, val/=d;
val=n-i+1;
while(val>1&&val%d==0) nr--, val/=d;
if(nr) cnt++;
}
}
else if(d==4)
{
int nr=0;
for(int i=1; i<=n; i++)
{
int val=i;
while(val>1&&val%2==0) nr++, val/=2;
val=n-i+1;
while(val>1&&val%2==0) nr--, val/=2;
if(nr>=2) cnt++;
}
}
else
{
int nr1=0, nr2=0;
for(int i=1; i<=n; i++)
{
int val=i;
while(val>1&&val%2==0) nr1++, val/=2;
while(val>1&&val%3==0) nr2++, val/=3;
val=n-i+1;
while(val>1&&val%2==0) nr1--, val/=2;
while(val>1&&val%3==0) nr2--, val/=3;
if(nr1&&nr2) cnt++;
}
}
out<<cnt;
return 0;
}