Cod sursa(job #1294904)
Utilizator | Data | 18 decembrie 2014 14:19:22 | |
---|---|---|---|
Problema | Factorial | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.1 kb |
#include <fstream>
using namespace std;
long long int p,minim=1,maxim=100000000000,mid,valoare=-1;
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-mid%5;
flag=1;
break;
}
else if(p5(mid)>p) maxim=mid-1;
else if(p5(mid)<p) minim=mid+1;
}
fout<<valoare;
return 0;
}