Cod sursa(job #901229)
Utilizator | Data | 1 martie 2013 08:43:21 | |
---|---|---|---|
Problema | Factorial | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<fstream>
#include<iostream>
using namespace std;
long int n,p;
ifstream f("fact.in");
ofstream g("fact.out");
long int nrzero(long int x)
{long c=5,n5=0;
while(c<=x){n5+=(x/c);c*=5;}
return n5;
}
long int versol(long int ls,long int ld)
{
while(ls<=ld){long int m=(ld+ls)/2;if(nrzero(ls)==p)return ls;
if(nrzero(m)<p)return versol(m,ld);
else return versol(ls+1,m);}
}
int main()
{f>>p;
g<<versol(1,2000000000);
f.close();
g.close();
return 0;}