Cod sursa(job #1400940)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 25 martie 2015 16:04:48
Problema Factorial Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>

using namespace std;

long long int p;

long long int ok(long long int x){
    long long int s = 0;
    long long int i;
    for(i = 5;i <= x;i = i*5){
        s = s + x/i;
    }
    return s;
}

int main(){
    long long int st,dr,mij,aux;
    freopen("fact.in", "r", stdin);
    freopen("fact.out", "w", stdout);
    scanf("%lld",&p);
    if(p == 0){
        printf("1\n");
    }else{
       st = 1;
       dr = p*5;
       mij = 0;
       while(st <= dr){
            mij = (st+dr)/2;
            aux = ok(mij);
            if(aux < p){
                st = mij + 1;
            }else{
                dr = mij - 1;
            }
       }
       if(ok(mij) == p){
        printf("%lld\n",ok(mij));
       }else{
        printf("-1\n");
       }
    }
    return 0;
}