Cod sursa(job #1753597)

Utilizator Dan_RadulescuRadulescu Dan Dan_Radulescu Data 6 septembrie 2016 19:11:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
long long p,st=1,dr=1000000000,sw=0;
long long f(long long n){
    long long p=1,s=0;
    while(p<=n){
        p=p*5;
        s=s+n/p;
    }
    return s;
}
int main(){
   fin>>p;
   fin.close();
   long long mij,val;
   if (p==0){
    fout<<"1";
    fout.close();
    return 0;
   }
   while(st<=dr && sw==0){
       mij=(st+dr)/2;
       val=f(mij);
       if (val>p) dr=mij-1;
        else
            if (val<p) st=mij+1;
              else
                sw=1;
   }
   if (sw==0) fout<<"-1";
     else
     {
         while(mij%5!=0) mij--;
         fout<<mij;
     }
   fout.close();
   return 0;
}