Pagini recente » Istoria paginii utilizator/nita.teodor | Rezultatele filtrării | Cod sursa (job #2304936)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int power(int N, int P) {
int r = 1;
while (P) {
if (P % 2 == 1) {
r = r * N;
}
N = N * N;
P = P / 2;
}
return r;
}
int show(int z) {
int d = 1, s = 0;
while (z / power(5, d) > 0) {
s += z / power(5, d);
d++;
}
return s;
}
bool check(long long int x) {
int d = 0;
while (x > 0) {
x -= power(5, d);
d++;
}
if (x == 0) {
return true;
}
else {
return false;
}
}
int answer(long long int y) {
int d = 0;
while (y > 0) {
y -= power(5, d);
d++;
}
return power(5, d);
}
int main()
{
long long int n;
in >> n;
if (check(n) == true) {
out << answer(n);
}
else {
int k = 0;
while (show(k) < n) {
k++;
}
if (show(k) == n) {
out << k;
}
else {
out << -1;
}
}
}