Pagini recente » Cod sursa (job #2634509) | Cod sursa (job #2728373) | Cod sursa (job #1445906) | Cod sursa (job #969542) | Cod sursa (job #2320186)
#include <fstream>
using namespace std;
ifstream cin ("pascal.in");
ofstream cout ("pascal.out");
long long mod;
long long d[6];
void upd (long long val)
{
while(!(val&1LL))
{
val>>=1LL;
++d[2];
}
while(!(val%3))
{
val/=3;
++d[3];
}
while(!(val%5))
{
val/=5;
++d[5];
}
}
void sct (long long val)
{
while(!(val&1LL))
{
val>>=1LL;
--d[2];
}
while(!(val%3))
{
val/=3;
--d[3];
}
while(!(val%5))
{
val/=5;
--d[5];
}
}
int main()
{
long long r,i,cur=0,cnt=0,inmul,imp=2;
cin>>r>>mod;
inmul=r-1;
upd(r);
++cnt;
while(inmul>=2)
{
upd(inmul);
sct(imp);
--inmul;
++imp;
if(mod==2 && d[2])
++cnt;
else
if(mod==3 && d[3])
++cnt;
else
if(mod==4 && d[2]>1)
++cnt;
else
if(mod==5 && d[5])
++cnt;
else
if(mod==6 && min(d[2],d[3]))
++cnt;
}
cout<<cnt;
return 0;
}