Cod sursa(job #1606823)

Utilizator andy1207Cioltan Andrei andy1207 Data 20 februarie 2016 16:40:14
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<cstdio>
int main()
{
 int p,q,w,st,dr,pp,mij,cmij;
 freopen("fact.in","r",stdin);
 freopen("fact.out","w",stdout);
 scanf("%d",&p);
 if(p==0)
     printf("1\n");
 else
    {
     st=1;
     dr=1000000000;
     pp=0;
     while(st<=dr && pp==0)
          {
           mij=(st+dr)/2;
           cmij=mij;
           q=5;
           w=0;
           while(cmij/q!=0)
                {
                 w=w+(cmij/q);
                 q*=5;
                }
           if(w<p)
               st=mij+1;
           else
              {
               if(w>p)
                   dr=mij-1;
               else
                  {
                   pp=1;
                  }
              }
          }
     if(pp==1)
        {
         while(mij%5!=0)
              {
               mij--;
              }
         printf("%d\n",mij);
        }
     else
        {
         printf("-1\n");
        }
    }
return 0;
}