Cod sursa(job #2337559)

Utilizator sygAndreiIonitaIonita Andrei sygAndreiIonita Data 6 februarie 2019 15:34:50
Problema GFact Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.63 kb
#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;
}