Cod sursa(job #399409)
| Utilizator | Data | 20 februarie 2010 14:22:25 | |
|---|---|---|---|
| Problema | Factorial | Scor | 85 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <fstream>
using namespace std;
int nr5(int a){
int k=0,p=5;
for(int i=5;i<a;i*=5){
k+=a/i;
}
return k;
}
int main(){
fstream fin("fact.in",ios::in);
fstream fout("fact.out",ios::out);
int beg=0,end=INT_MAX,mdl,p,res=-1;
fin>>p;
while(beg<=end){
int mdl=beg+(end-beg)/2;
int n5=nr5(mdl);
if(n5<p){
beg=mdl+1;
}else if(n5>p){
end=mdl-1;
}else{
res=mdl;
break;
}
}
fout<<(res/5)*5;
fin.close();
fout.close();
return 0;
}
