Cod sursa(job #291520)

Utilizator BaduBadu Badu Badu Data 29 martie 2009 22:46:32
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include<stdio.h>

long long fives(long long x){

	long 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 long k;
	fscanf(f,"%lld",&k);

	long long st = 1;
	long long dr = ~(1<<64);
	long long mj,n;

	while(st<=dr){

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

	}

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


	return 0;
}