Pagini recente » Cod sursa (job #1553703) | Cod sursa (job #2337559)
#include <fstream>
using namespace std;
ifstream in ("gfact.in");
ofstream out ("gfact.out");
int nr0(long long a,long long b)
{
long long powe=b,cnt=0;
while (powe<=a)
{
cnt=cnt+a/powe;
powe=powe*b;
}
return cnt;
}
long long ctbin (long long val,long long b)
{
long long pos=0;
for (long long msk=1<<30;msk>0;msk/=2)
{
if (nr0(pos+msk,b)<=val)
pos=pos+msk;
}
if (nr0(pos,b)!=val)
return -1;
else
{
while (nr0(pos,b)==val)
pos--;
return pos+1;
}
}
int main()
{
long long n,m;
in>>n>>m;
out<<ctbin(m,n);
return 0;
}