Cod sursa(job #363736)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 14 noiembrie 2009 15:55:57
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;

ifstream in("fact.in",ifstream::in);
ofstream out("fact.out",ofstream::out);

int calculare(int p)
{
	int fact,put,nr_ajuns;
	nr_ajuns = 0;
	while (p > 0)
	{
	//Cautam ce grupa maxima putem sari acum.
		fact = 5;
		put = 1;
		while (put <= p)
		{
			fact *= 5;
			put = put * 5 + 1;
		}
		fact /= 5;
		put = (put - 1)/5;
	//Vedem de cate ori se cuprinde.
		//put_totala = (p/put)*put;//Cati de 5 am reusit sa repartizez.
		nr_ajuns+=fact;
		p -= put;//Cati de 5 mai am nerepartizati.
	}
	return nr_ajuns;
}


int main()
{
	int nr_ajuns1,nr_ajuns2;
	int p;
	in>>p;
	if (p == 0)
	{
		out<<1;
		return 0;
	}
	nr_ajuns1 = calculare(p);
	nr_ajuns2 = calculare(p+1);
	if (nr_ajuns1 == nr_ajuns2)
		out<<-1;
	else
		out<<nr_ajuns1;
}