Cod sursa(job #1948385)
Utilizator | Data | 1 aprilie 2017 00:52:05 | |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int N,st,dr,nr;
int main()
{
fin>>N;
st=1,dr=5*N;
while(st<=dr){
int mij=(st+dr)/2;
nr=0;
for(int i=5;i<=mij;i*=5)
nr+=mij/i;
if(nr>=dr)dr=mij-1;
else st=mij+1;
}
nr=0;
for(int i=5;i<=st;i*=5)
nr+=st/i;
if(nr==N)fout<<nr;
else fout<<-1;
}