Cod sursa(job #47338)

Utilizator FlorianFlorian Marcu Florian Data 3 aprilie 2007 16:27:38
Problema Factorial Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include<stdio.h>
#include<values.h>
int main()
{long long unsigned x,pr,n,p,i,j,m,nr;
FILE *f=fopen("fact.in","r");
FILE*g=fopen("fact.out","w");
fscanf(f,"%llu",&p);
i=0;
j=MAXLONG;
while (i<=j)
	{ m=(i+j)/2;
	nr=0;  pr=5;
	while(m/pr!=0) {nr+=m/pr; pr*=5;}
	if (nr==p)
		{
		int ok=0;
		while(!ok&&m>1)
			{m--;
			nr=0;  pr=5;
			while(m/pr!=0) {nr+=m/pr; pr*=5;}
			if (nr==p) m--;
			else {ok=1; fprintf(g,"%llu",m+1); break;} }
			break;}
	else if (nr<p) i=m+1;
	else j=m-1;}
if (i>j) fprintf(g,"-1");
fclose(f);
fclose(g);
return 0;}