Cod sursa(job #966127)

Utilizator YoChinezuWeng Mihai Alexandru YoChinezu Data 25 iunie 2013 13:29:27
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>

using namespace std;

int p;

int zero(int x){
    //s= numarul de zerouri in care se termina x!
    int s=0,numitor=5;
    while(x/numitor>0){
        s=s+x/numitor;
        numitor=numitor*5;
    }
    return s;
}

int bs_left(int st,int dr){
    int med,last=-1;
    while(st<=dr){
        med=st+(dr-st)/2;
        if(p<=zero(med)){
            last=med;
            dr=med-1;
        }else
            st=med+1;
    }
    return last;
}

int main(){
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%d",&p);
    if(zero(bs_left(1,1e9))==p){
        printf("%d",bs_left(1,1e9));
    }else
        printf("-1");
    /*if(n==0){
        printf("1");
        return 0;
    }
    for(int i=5;i<=10000000;i=i+5){
        if(zero(i)==n){
            printf("%d",i);
            return 0;
        }
        if(zero(i)>n){
            printf("-1");
            return 0;
        }
    }*/
    return 0;
}