Cod sursa(job #905145)

Utilizator davidoceaSintamarian David davidocea Data 5 martie 2013 17:04:40
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>
int p;
int numarzero(int n){
    int ci=5,s=0;
    while(ci<=n){
        s+=n/ci;
        ci*=5;
    }
    return s;
}
int cautbin(int st,int dr){
    int mij=(st+dr)/2;
    if (st>dr){
        printf("-1");
        return -1;
    }

    if(numarzero(mij)==p){
         return mij;
    }
    else if (numarzero(mij)> p) {
        return cautbin(st, mij-1);
    }
    return cautbin(mij+1,dr);
 }
int main () {
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int n;
    scanf("%d",&p);
    n=cautbin(1,400000016);
    if(n<0){
        printf("-1");
    }
    for(;n%5!=0;){
        --n;
    }
    if(n==0){
        ++n;
    }
    printf("%d",n);
    return 0;
}