Pagini recente » Cod sursa (job #1653430) | Cod sursa (job #154901) | Cod sursa (job #1424838) | Cod sursa (job #969653) | Cod sursa (job #988063)
Cod sursa(job #988063)
#include <fstream>
using namespace std;
int main(){
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
fin >> p;
fin.close();
int pow[14];
pow[0] = 1;
for (int i=1; i<14; i++)
pow[i] = pow[i-1] * 5;
int a,b,n,r,t,i;
a = 1;
b = 2147483646;
while (a != b){
n = (a+b)/2;
r = 0;
i = 1;
do{
t = n/pow[i++];
r = r + t;
} while (t>0);
if (r==p) break;
else if (r>p) b = n;
else a = n+1;
}
if (r == p){
int d = n % 10;
if (d<5)
if (n<5) n = 1;
else n = n - d;
else n = n - d + 5;
}
else n = -1;
fout << n;
fout.close();
return 0;
}