Cod sursa(job #2714339)

Utilizator Luca_Miscocilucainfoarena Luca_Miscoci Data 1 martie 2021 18:17:11
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda luca_oji2 Marime 0.73 kb
#include <iostream>
#include <stdio.h>
#include <cstdio>
#define NMAX 919999999999999999

using namespace std;

long long lagrange (long long n){
  long long x = 5;
  long long cnt = 0;
  while (n / x > 0){
    cnt += n / x;
    x *= 5;
  }
  return cnt;
}

int main(){

  FILE *fin = fopen ("fact.in", "r");
  FILE *fout = fopen ("fact.out", "w");

  int k;
  long long st, dr, ans, mij;
  st = 1; dr = NMAX + 1;

  fscanf (fin, "%d", &k);
  while (st < dr){
    mij = (st + dr) / 2;

    if (lagrange(mij) >= k)
      dr = mij;

    else
      st = mij + 1;
  }
  mij = st + (dr - st) / 2;

  if (lagrange(mij) == k)
    fprintf (fout, "%d", mij);

  else
    fprintf (fout, "-1");
  return 0;
}