Cod sursa(job #806171)

Utilizator pitradaPit-Rada Ionel-Vasile pitrada Data 1 noiembrie 2012 23:08:53
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
# include<fstream>
using namespace std;

int nr_zerouri(int n)
{
    int p;
    p=0;
    while (n>4)
    {
        n=n/5;
        p=p+n;
    }
    return p;
}

int main()
{
    ifstream cin("fact.in");
    ofstream cout("fact.out");
    int p,n,a,b,c;
    cin >> p;
   a=1;
   b=100000010;
    while(a<=b)
    {
        c=(a+b)/2;
        n=nr_zerouri(c);

        if(n==p)
        {
            a=c+1; b=c;
        }
        else
        {

            if(n<p)
            {
                a=c+1;
            }
            else
            {
                b=c-1;
            }
        }
    }
    if (p==0)
    {
        cout<<1;
    }
    else
    {
         n=nr_zerouri(b);
        if(n!=p)
        {
          cout << -1 ;
        }
       else
        {
           while(n==p)
           {
              b--;
              n=nr_zerouri(b);
           }
           cout << b+1;
       }
   }
}