Cod sursa(job #852780)
| Utilizator | Data | 11 ianuarie 2013 18:42:50 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.44 kb |
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int u,k,m,z;
long long p,s;
int main () {
in>>k;
p=1;u=2000000000;
if(k==0){
out<<1;
return 0;
}
while(p<=u){
m=(p+u)/2;
s=0;z=5;
while(z<=m){
s=s+m/z;
z=z*5;}
if(s==k){
while(m%5!=0)
m--;
out<<m;
break;}
else
if(k<s)
u=m-1;
else
p=m+1;}
if(p>u)
out<<-1;
return 0;
}
