Cod sursa(job #1509622)
| Utilizator | Data | 24 octombrie 2015 09:41:34 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int main()
{
long i, j, m, prod, ok, P, nr;
fin>>P;
i=1;
j=LONG_MAX;
ok=0;
while(i<=j && ok==0)
{
m=(i+j)/2;
nr=0;
prod=5;
while(prod<=m)
{
nr=nr+m/prod;
prod=prod*5;
}
if(nr==P) ok=1;
else if(nr>P) j=m-1;
else i=m+1;
}
if(ok==0) fout<<-1;
else fout<<m-m%5;
return 0;
}
