Cod sursa(job #291553)

Utilizator BaduBadu Badu Badu Data 29 martie 2009 23:18:28
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>

long  fives(long  x){

	long  nr = 0,cat=5;

	while( cat <= x ){

		nr+= x / cat;

		cat*=cat;
	}

	return nr;
}

int main(){

	FILE *f=fopen("fatorial.in","r");
	FILE *g=fopen("factorial.out","w");
    long  k;
	fscanf(f,"%lld",&k);

	long  st = 1;
	long  dr = 1024;
	long  mj,n=0,nn;

	while(st<=dr){

		mj = (st+dr)>>1;
		nn = fives(mj);

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

	}

	if( fives(n) == k) fprintf(g,"%lld",n);
	else fprintf(g,"-1");


	return 0;
}