Cod sursa(job #1331717)
Utilizator | serban andrei-catalin serban_andrei | Data | 1 februarie 2015 00:45:11 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
using namespace std;
#define MAX 100003
int p;
int nzero(int x)
{
int rez=0,p5=5;
while(x/p5 >0)
{
rez=rez+x/p5;
p5=p5*5;
}
return rez;
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
fin>>p;
int st = 1, dr = 5*100000000;
while(st<=dr){
int mij = (st+dr)/2;
if(nzero(mij)<p)
st = mij + 1;
else
dr = mij - 1;
}
if(nzero(st) == p)
fout<<st;
else
fout<<-1;
return 0;
}