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