Cod sursa(job #1294902)
Utilizator | Data | 18 decembrie 2014 14:16:31 | |
---|---|---|---|
Problema | Factorial | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.09 kb |
#include <fstream>
using namespace std;
long long int p,minim=1,maxim=100000000000,mid;
bool flag=0;
long long int p5(long long int x){
long long int s=0;
while(x>0){
s=s+x/5;
x=x/5;
}
return s;
}
int main()
{
ifstream fin("fact.in");
ofstream fout("fact.out");
fin>>p;
while(minim<=maxim){
mid=(minim+maxim)/2;
if(p5(mid)==p) {
fout<<mid;
flag=1;
break;
}
else if(p5(mid)>p) maxim=mid-1;
else if(p5(mid)<p) minim=mid+1;
}
if(flag==0) fout<<"-1";
return 0;
}