Pagini recente » Cod sursa (job #597085) | Cod sursa (job #90002) | Cod sursa (job #2797444) | Cod sursa (job #2790267) | Cod sursa (job #368193)
Cod sursa(job #368193)
//problema 1 factorial
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("fact.in");
ofstream fo("fact.out");
int main() {
long capat , inceput , p , n , k ;
fi >> n;
//capat = 400000015;
capat = 500000015;
p = capat / 2 ;
inceput = 1;
while (p) {
p = (inceput + capat) / 2;
p -= p % 5;
k = p / 5 + p / 25 + p / 125 + p / 625 + p / 3125 + p / 15625 + p / 78125 + p / 390625 + p / 1953125 + p / 9765625 + p / 48828125 + p / 244140625 + p / 1220703125;
if (k == n)
break;
if (k > n) {
capat = p;
}
if (k < n) {
if (inceput == p) {
p = -1;
break;
}
inceput = p;
}
if (inceput == capat) {
p = -1;
break;
}
}
if (n != 0)
fo << p;
else
fo << 1;
fi.close();
fo.close();
}