Cod sursa(job #237860)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 30 decembrie 2008 20:48:28
Problema Factorial Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>

long P;

long nrz(long n)
{   long nrz=0;
    while(n!=0)
     {
      nrz+=n/5;
      n/=5;
     }
    return nrz;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%ld",&P);
    long st=0,dr=200000000;
    if(P==0)
     printf("1\n");
    int ok=0;
    while (st<=dr)
    {
        long mij=(dr+st)/2;
        long nrm=nrz(mij);
        if (nrm==P)
        {   ok=1;
            if(mij%5==0)
             printf("%ld\n",mij);
             else {while(mij%5!=0)
                     mij--;
                   printf("%ld\n",mij);
                  }
            break;
        }
        else if (nrm>P)
            dr=mij-1;
        else
            st=mij+1;

    }
    if(ok==0)
      printf("-1\n");
    return 0;

}