Cod sursa(job #2216185)
| Utilizator | Data | 25 iunie 2018 19:38:26 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int c,st,dr,mid,nr,p;
int main(){
fin>>c;
if(c==0){
fout<<"1";
return 0;
}
st=1;
dr=INT_MAX;
while(st<=dr){
mid=(st+dr)/2;
nr=0;
p=5;
while(p<=mid){
nr+=(mid/p);
p*=5;
}
if(c>nr)
st=mid+1;
else
dr=mid-1;
}
p=5; nr=0;
while(p<=st){
nr+=(st/p);
p*=5;
}
if(nr==c)
fout<<st;
else
fout<<"-1";
return 0;
}
