Pagini recente » Cod sursa (job #2734783) | Cod sursa (job #806501) | Cod sursa (job #3154309) | Cod sursa (job #2650742) | Cod sursa (job #862927)
Cod sursa(job #862927)
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <math.h>
#include <map>
#include <stdlib.h>
#include <sstream>
#include <stdio.h>
using namespace std;
#define PI 3.1415926535897932384626433832795
#define MAX 1001
int main() {
freopen("fact.in", "r", stdin);
freopen("fact.out", "w", stdout);
long long n, p, sum, aux;
scanf("%I64d", &p);
if (p == 0) {
cout << "1";
return 0;
}
int step = 0;
long long found = 0;
for (n = 4*p / 5;;) {
sum = 0;
aux = n / 5;
while(aux) {
sum += aux;
aux /= 5;
}
if (sum == p) {
found = n;
n--;
continue;
}
if (sum < p && found > 0) {
printf("%I64d", found);
return 0;
}
if (sum < p) {
n += 1 << step;
step ++;
}
if (sum > p) {
step -= 2;
n -= 1 << step;
}
}
return 0;
}