Cod sursa(job #1691528)
Utilizator | Data | 18 aprilie 2016 17:27:50 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.67 kb |
#include <iostream>
#include <fstream>
#include <climits>
#include <cmath>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long n,p,z;
void citire()
{
in >> p;
}
int nrz(int m)
{
int nr=0,div=5;
while(m/div!=0){
nr= nr+ m/div;
div=div*5;
}
return nr;
}
int main()
{
citire();
long long st = 1,dr = 1000000000,mij,poz=-1;
while(st<=dr)
{
mij = (st + dr)/2;
z = nrz(mij);
if(z>=p)
{
if(z==p)
poz = mij;
dr = mij -1;
}
else
st = mij + 1;
}
out << poz;
return 0;
}