Cod sursa(job #2295071)
Utilizator | Stan Flavius Stefan stan_flavius | Data | 3 decembrie 2018 02:18:20 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <fstream>
using namespace std;
ifstream fin("factorial.in");
ofstream fout("fatorial.out");
int p;
int fact(int n)
{ int i,val=0;
for(i=5; n/i>=1; i*=5)
val+=n/i;
return val;
}
int main()
{ fin>>p;
if(p==0) {fout<<1; return 0;}
int s=0,d=5*p;
int pp=0;
int m;
while(s<=d && pp==0)
{ m=(s+d)/2;
if(fact(m)==p) {fout<<m; return 0;}
else if(fact(m)>p) d=m-1;
else s=m+1;
}
return 0;
}