Cod sursa(job #291959)

Utilizator BaduBadu Badu Badu Data 30 martie 2009 16:59:41
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.5 kb
#include<stdio.h>
#define ul unsigned long int

ul k,n,nn,st,dr;

ul five(ul x){
	ul nr=0;
	while(x) { nr+=x/5; x/=5; }
	return nr;
}

int main(){

	FILE *f=fopen("fact.in","r");
	FILE *g=fopen("fact.out","w");

	fscanf(f,"%u",&k);

	st = 1;
	dr = 999999999;
	ul mj;

	while(st<=dr){

		mj = ( st+dr )>>1;
		nn = five(mj);
		if( nn < k) st = mj+1;
		else{
			if(nn==k) n=mj;
			dr = mj-1;
		}
	}


	if(five(n) == k) fprintf(g,"%u",n);
	else fprintf(g,"-1");
	return 0;
}