Cod sursa(job #1145381)

Utilizator atelaluCazan Alexandru atelalu Data 18 martie 2014 10:19:56
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <cstdio>

using namespace std;
long long n5(long long n)
{
       long long nr5=5,s=0;
       while(n/nr5!=0)
       {
              s=s+n/nr5;
              nr5=nr5*5;
       }
       return s;
}
long long bs(long long st, long long dr, long long val)
{
       long long med,last=-1;
       while(st<=dr)
       {
              med=st+(dr-st)/2;
              if(val<=n5(med))
                     {
                            last=med;
                            dr=med-1;
                     }
              else
              {
                     st=med+1;
              }
       }
       return last;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p;
    scanf("%d",&p);
    long long st,dr,n,chestie;
    st=1;
    dr=1LL<<60;
    chestie=bs(st,dr,p);
    printf("%lld",chestie);
    return 0;
}