Cod sursa(job #2304936)

Utilizator StefanSanStanescu Stefan StefanSan Data 18 decembrie 2018 20:50:44
Problema Factorial Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#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;
		}
	}

}