Cod sursa(job #1651569)

Utilizator avneacsuAlexandra Neacsu avneacsu Data 13 martie 2016 15:53:30
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>

using namespace std;

long factorial(int n) {
	if (n == 0 || n ==1)
		return 1;
	else return n * factorial(n-1);
}

long smallestNo(int p) {
	if (p == 0)
		return 1;

	long output = 0;
	long multipliesFound = 0;

	while (multipliesFound < p) {
		output++;
		if (output%625 == 0) {
			multipliesFound += 5;

			long temp = output/625;
			long multiplies = 0;
			while (temp%5 == 0) {
				multiplies++;
				temp = temp/5;
			}
			multipliesFound += multiplies;

		} else if (output%125==0) multipliesFound += 4;
		else if (output%25==0) multipliesFound += 3;
		else if (output%5==0) multipliesFound += 2;
		else multipliesFound += 1;

		long temp = output;
		long multiplies = 0;
		while (temp%5 == 0) {
			multiplies++;
			temp = temp/5;
		}
		multipliesFound += multiplies;
	}

	if (multipliesFound > p) output = -1;
	return output;
}

int main(void) {
	ifstream f("fact.in");
	ofstream g("fact.out");
	long p;
	f>>p;
	long output = smallestNo(p);
	g<<output;
	return 0;
}