Cod sursa(job #1703439)

Utilizator serban_andreiserban andrei-catalin serban_andrei Data 16 mai 2016 22:19:19
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

#define nmax 1000000010

using namespace std;

int st=1,dr=nmax,mijloc,da,P;

unsigned long long nrzero(int n)
{
    int p=5;
    unsigned long long suma=0;
    while(n/p)
    {
        suma=suma+n/p;
        p=p*5;
    }
    return suma;
}

int main()
{

    ifstream f("fact.in");
    ofstream g("fact.out");

    f>>P;

    while(st<=dr)
    {
        mijloc=(st+dr)/2;
        if(nrzero(mijloc)>=P)
        {

            dr=mijloc-1;
            da=mijloc;

        }
        else st=mijloc+1;
    }
    if(P==0)
    {
        g<<1;
        return 0;
    }
    if(nrzero(da)!=P)
    {
        g<<-1;
        return 0;
    }
    while(da%5)
    {
        da--;
    }
    g<<da;

    return 0;

}