Cod sursa(job #1276765)

Utilizator denischiritachirita denis denischirita Data 26 noiembrie 2014 20:13:06
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<cstdio>
using namespace std;
int fact(int n){
    int k=5,nr=0;
    while(k<=n){
        nr=nr+n/k;
        k=k*5;
    }
    return nr;
}
int bs(int st,int dr,int val)
{
//returneaza poz lui val else -1
    int med,last=-1;
    while(st<=dr)
    {
        med=dr-((dr-st)>>1);
        if(fact(med)>=val)
        {
            last=med;
            dr=med-1;
        }
        else
            st=1+med;
    }
    return last;
}
int main(){
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int n;
    scanf("%d",&n);
    if(n==0)
    printf("1");
    else
    printf("%d",bs(1,2000000000,n));
}