Cod sursa(job #1046294)
Utilizator | Data | 2 decembrie 2013 20:16:37 | |
---|---|---|---|
Problema | Factorial | Scor | 15 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include<fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
long long st,dr,mid;
int p;
bool posibil(long long n){
long long k=0,q=1;
while(q<=n) {
q*=5;
k+=(n/q);
}
if (k==p) return true;
else return false;
}
int main(){
fi>>p;
st=1; dr=5*p;
while(st!=dr){
mid=(st+dr)/2;
if (posibil(mid)) dr=mid;
else st=mid+1;
}
if (posibil(st)) fo<<st;
else fo<<-1;
fi.close();
fo.close();
return 0;
}