Cod sursa(job #408814)

Utilizator RoswenRus Alexandru Roswen Data 3 martie 2010 11:31:20
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#define nmax 2000000000
FILE *f=fopen("fact.in","r"), *g=fopen("fact.out","w");
unsigned long long ls,ld,mij,i,t,p,zr;

struct nod
{
	long long pt, zer;
} v[15];

int z(long long n)
{
	int t=0;
	
	while(n)
	{
		t+=n/5;
		n/=5;
	}
	
	return t;
}

int main()
{
	fscanf(f, "%lld", &p);
	
	ls=0, ld=nmax*100;
	if(p==0) 
	{
		fprintf(g,"1");
		return 0;
	}
	while(ls<ld)
	{
		mij=(ls+ld)/2;
		zr=z(mij-(mij%5));
		if(zr==p)
		{
			fprintf(g, "%ld", mij-mij%5);
			return 0;			
		}
		else if(zr<p)
			ls=mij;
		else if(zr>p)
			ld=mij;
		if(ls+1==ld) break;
	}
	fprintf(g, "-1");
	return 0;
}