Pagini recente » Cod sursa (job #1751563) | Cod sursa (job #3257552) | Cod sursa (job #883195) | Cod sursa (job #2959657) | Cod sursa (job #2279986)
#include <fstream> // reimplementare pentru lab ASD
#include <algorithm>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long N, P, d, aux, mask, Max;
long long check (long long x) {
long long deimp = 5, sol = 0;
while (x >= deimp) {
sol += x / deimp;
deimp *= 5;
}
return sol;
}
int cautbin (long long P) {
long long sol = 0;
while (mask) {
long long test = sol + mask;
if (test <= Max) {
long long val = check(test);
if (val < P) sol = test;
}
mask >>= 1;
}
long long val = check(sol + 1);
return val == P ? sol + 1: -1;
}
int main() {
f >> P;
Max = 5 * P;
mask = 1;
while (mask <= Max)
mask <<= 1;
mask >>= 1;
g << cautbin(P);
return 0;
}