Cod sursa(job #1082692)

Utilizator eddymangeoManoloiu Edmond eddymangeo Data 14 ianuarie 2014 21:13:39
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<stdlib.h>
long count(long num){
	long int i,k=0;
	for(i = 5; num/i > 0; i *= 5)
		k+=num/i;
	return k;
}
int main(){
	FILE *f,*g;
	f = fopen("fact.in","r");
	g = fopen("fact.out","w");
	long int P,nr,st=1,dr=1000000000,mijloc;
	long int rez = -1;
	fscanf(f,"%ld",&P);
	fclose(f);
	while(st <= dr)
    {
		mijloc = st + (dr - st)/2;
		nr = count(mijloc); 
	    if (nr == P)
        {
        	rez = mijloc;
            dr = mijloc - 1;
        }else
        	if(nr > P)
            	dr = mijloc - 1;
            else
            	if(nr < P)
                	st = mijloc + 1;
    }
	fprintf(g,"%ld",rez);
	fclose(g);
	return 0;
}