Cod sursa(job #1645798)

Utilizator miki4Dragomir Mihai miki4 Data 10 martie 2016 13:49:04
Problema Factorial Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int i , j, c, x, y, v[20000006], p, k, st, dr, mid;
int main()
{
    fin>>p;
    if(p==1)
        fout<<5;
    else
        if(p==0)
            fout<<1;
        else{

            for(i=1;i<=100000000;i++)
                if(i%5==0)
                {v[k]=i;k++;}
            st=1;
            dr=20000000;
            while(st<=dr){
                mid=(st+dr)/2;
                x=5;y=0;
                while(x<=v[mid]){
                    y+=v[mid]/x;x=5*x;
                }
                //fout<<y<< " ";
                if(p==y)
                    break;
                else{
                    if(p>y)
                        st=mid+1;
                    else
                        dr=mid-1;
                }

            }
            if(st<=dr)
                fout<<v[mid];
            else
                fout<<-1;
        }
    return 0;
}