Cod sursa(job #1109900)
| Utilizator | Data | 17 februarie 2014 18:11:18 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.79 kb |
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("factorial.in");
ofstream g("factorial.out");
int o,p;
int b = 1000000000;
int proc(int a){
int q=0;
while(a/5){
q=q+a/5;
a/=5;
}
return q;
}
void caut(int st, int dr){
int mij;
if(st < dr){
mij = (st+dr)/2;
o=proc(mij);
if(o>p){
caut(st,mij-1);
}
else
if(o<p)
caut(mij+1,dr);
else{
while (mij%5)
mij--;
g << mij;
exit(0);
}
}
}
int main()
{
f >> p;
if(p==0)
g << 1;
else
caut(0,b);
g << "-1";
return 0;
}
