Cod sursa(job #854550)
| Utilizator | Data | 13 ianuarie 2013 18:43:38 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.67 kb |
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long pt;
int n,p,u,m,k,nr;
int main(){
f>>k;
p=1;
u=2000000000;
if(k==0)
{
g<<1;
return 0;
}
while(p<=u){
m=(p+u)/2;
pt=5;// puteri ale lui 5
nr=0;// nr de zerouri ale lui m!
while(pt<=m){
nr=nr+m/pt;
pt=pt*5;
}
if(nr==k){
while(m%5!=0)
m--;
g<<m;
break;
}
else
if(nr<k)
p=m+1;
else
u=m-1;
}
if(p>u)
g<<-1;
return 0;
}
