Cod sursa(job #843721)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 28 decembrie 2012 11:34:06
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
int p;
int nrzero(int val)
{
    int rez = 0;
    do
    {
        val/= 5;
        rez+=val;
    } while (val/5!=0);
    return rez;
}
int bsearch(int st, int dr)
{
    int val,med;
    while (st<=dr)
    {
        med=dr-(dr-st)/2;
        val=nrzero(med);
        if (val>=p)
            dr=med-1;
        else
            st=med+1;
    }
    val=nrzero(med);
    if (val<p)
    {
        med++;
        val=nrzero(med);
    }
    if (val==p)
        return med;
    else
        return -1;
}

int main()
{
    int sol;
    freopen ("fact.in","r",stdin);
    freopen ("fact.out","w",stdout);
    scanf ("%d",&p);
    if (p==0)
        sol=1;
    else
    if (p==1)
        sol=5;
    else
        sol=bsearch(1,5*p);
    printf ("%d\n",sol);
    return 0;
}