Pagini recente » Cod sursa (job #2433258) | Cod sursa (job #179308) | Cod sursa (job #1129260) | Cod sursa (job #2510359) | Cod sursa (job #365906)
Cod sursa(job #365906)
#include <iostream>
#include <fstream>
using namespace std;
long long int v[]={5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625};
int len=12;
long long int p;
long long int returnputere(long long int n) {
long long int j=0, i;
for(i=0; i<len; i++) {
j+=(int)(n/v[i]);
}
return j;
}
long long int cautabinar(long long int val, long long int st, long long int dr) {
while(st<dr) {
long long int mij=st+(dr-st)/2;
long long int q=returnputere(mij);
if(q==val) { return mij; }
else if(q<val) { st=mij+1; }
else if(q>val) { dr=mij-1; }
}
return -1;
}
int main() {
long long int i;
fstream f1, f2;
f1.open("fact.in", ios::in);
f1>>p;
f1.close();
i=cautabinar(p, 1, 999999999);
f2.open("fact.out", ios::out);
if(i==-1) { f2<<-1<<endl; }
else { f2<<i-i%5<<endl; }
f2.close();
//getch();
return 0;
}