Cod sursa(job #1774735)

Utilizator MirceaTMircea Timpuriu MirceaT Data 9 octombrie 2016 13:23:15
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<fstream>
#include<math.h>
using namespace std;

long long nr0(int a)
{
    long long s=0;
    for(long long p=5;p<=a;p*=5) s+=a/p;
    return s;
}
int caut_fact(int z)
{
    int st=1,dr=5*(1e8);
    while(st<=dr)
    {
        int mid=(st+dr)/2;
        if(z<=nr0(mid))
        {
            dr=mid-1;
        }
        else
        {
            st=mid+1;
        }
    }
    return st;
}
int main()
{
    ifstream fin ("fact.in");
    ofstream fout ("fact.out");
    int x;
    fin>>x;
    int n=caut_fact(x);
    if(nr0(n)!=x) fout<<-1;
    else fout<<n;
}