Pagini recente » Cod sursa (job #2080687) | Cod sursa (job #512541) | Cod sursa (job #2632818) | Cod sursa (job #3224118) | Cod sursa (job #2270752)
#include <fstream>
using namespace std;
ifstream fin ("fact.in");
ofstream fout ("fact.out");
int p, n, r, c, suma, st, dr, mid, w, v[100000];
int main (){
fin>>p;
st = 1; dr = p*5;
while (st <= dr) {
r = (st + dr)/2;
c = 5;
suma = 0;
while (c <= r) {
suma += r/c;
c *= 5;
}
/// in care interval cautam in continuare rezultatul ? (st r-1 sau r+1 dr)
if (suma >= p)
dr = r-1;
else
st = r+1;
}
/// aici verific daca st! chiar da p
c=5;
suma=0;
while(c<=st){
suma=suma + st/c;
c=c*5;
}
if(suma != p){
fout<<-1;
return 0;
}
fout<<st;
return 0;
}