Cod sursa(job #107287)

Utilizator hadesgamesTache Alexandru hadesgames Data 19 noiembrie 2007 18:27:06
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <stdio.h>
const long long puteri[12]={5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625};
int p;
int pt(long long x)
{
	int nr=0,i;
	i=0;
	while (x/puteri[i])
	{
		nr+=x/puteri[i];
		i++;
	}
	return nr;
}
long long  cauta(long long x)
{
	int a=0,b=400000015,m;
	while(a<b){
		m=(a+b)/2;
		if(pt(m)>=p)
			b=m;
		else
			a=m+1;
	}
	if(pt(a)==x)
		return a;
	return -1;
}
int main()
{
	FILE *in,*out;
	in=fopen("fact.in","r");
	out=fopen("fact.out","w");
	fscanf(in,"%d",&p);
	if (p==0)
	{
		fprintf(out,"1\n");
		fclose(in);
		fclose(out);
		return 0;
	}
	fprintf(out,"%lld\n",cauta(p));
	fclose(in);
	fclose(out);
	return 0;
}