Cod sursa(job #2460721)
Utilizator | Mihai Teisanu teisanumihai84 | Data | 24 septembrie 2019 10:36:42 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.63 kb |
#include <fstream>
using namespace std;
long long p, st, dr, put, s, aux;
int main ()
{
ifstream fin ("fact.in");
ofstream fout ("fact.out");
fin>>p;
st=1;
dr=2000000000;
while (st<=dr)
{
int mid=(st+dr)/2;
s=0;
put=5;
while (mid/put!=0)
{
s+=mid/put;
put*=5;
}
if (s>=p)
dr=mid-1;
else
st=mid+1;
}
s=0;
put=5;
aux=st;
while (aux/put!=0)
{
s+=aux/put;
put*=5;
}
if (s!=p)
fout<<-1;
else
fout<<st;
}