Cod sursa(job #87364)

Utilizator sanaDascalu Laurentiu sana Data 27 septembrie 2007 00:59:52
Problema Factorial Scor 90
Compilator c Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
#include <stdlib.h>



int main(){
	FILE *fin,*fout;
	fin=fopen("fact.in","rt");
	fout=fopen("fact.out","wt");


	long int P,i,t,x;
	int valid;

	fscanf(fin,"%ld",&P);

	if (P<0){
		fprintf(fout,"-1");
		goto close;
	}

	if (P==0){
		fprintf(fout,"1");
		goto close;
	}

	i=P*5;
	while(1){
		x=i;
		t=0;
		valid=0;

		while(x){
			t+=x/5;
			x=x/5;
			if (t>P){
				i-=5;
				valid=1;
				break;
			}
		}
		if (valid==1)
			continue;
		if (t==P){
			fprintf(fout,"%ld",i);
			goto close;
		}
		else if (t>P){
			i-=5;
			continue;
		}
		else if (t<P) {
			fprintf(fout,"-1");
			goto close;
		}
		break;
	}

	close:

	fclose(fin);
	fclose(fout);
	return 0;
}