Cod sursa(job #1415780)

Utilizator SwagginInMyJaysaaaaaaaaaaaas SwagginInMyJays Data 6 aprilie 2015 11:35:29
Problema Factorial Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#define pii pair <int, int>
#define ll long long
#define NX 100000000
using namespace std;
inline int getpp (int x){
    int nr = 0, k;
    for (k = 5 ; k <=x; k*=5)
        nr+=x/k;
    return nr;
}
int typf (int X){
    int st = 0 , dr = NX, mid;
    while (st <= dr) {
            mid = st + ((dr-st)>>1);
            if (getpp(mid) == X) return mid;
    if (getpp(mid) < X)
        st = mid + 1;
    else dr = mid - 1;
    }
    return mid;
}
int main()
{
    freopen ("fact.in", "r", stdin);
    freopen ("fact.out", "w", stdout);
    int nz;
    scanf ("%d", &nz);
    if (nz == 0 ){
            printf ("1");
    return 0;
    }
else {
                    int y = typf(nz);
  while (y && getpp(y) > nz) { y--;}
  while (getpp(y-1) == nz) y--;
printf ("%d", y);}
    return 0;
}