Cod sursa(job #2063712)

Utilizator daniela12Sandu Daniela Teodora daniela12 Data 11 noiembrie 2017 13:05:46
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <cmath>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int p;
long long int zero (long long int x)
{
    int s=0;
    for(int i=5;i<=x;i*=5)
        s+=x/i;
    return s;
}
void cautabin ()
{
    long long int inf=LONG_MAX;
    long long int li=1, ls=inf, mid, x;
    int ok=0;
    while(li<=ls)
    {
        mid=li+(ls-li)/2;
        x=zero(mid);
        if(x==p)    {ok=1;break;}
        if(x>p)     ls=mid-1;
        if(x<p)   li=mid+1;
    }
    if(ok)
    {
        while(zero(mid)==p && mid>=1)     mid--;
        g<<mid+1<<endl;
    }
}
int main()
{
    f>>p;
    cautabin();
    f.close();
    g.close();
}