Cod sursa(job #20986)

Utilizator swift90Ionut Bogdanescu swift90 Data 22 februarie 2007 18:56:08
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include<stdio.h>
int main(){
	FILE*in=fopen("fact.in","r");
	FILE*out=fopen("fact.out","w");
	int ap,s=0,p=1,n=5,n1;
	fscanf(in,"%d",&ap);
	if(ap==0){
		fprintf(out,"1\n");
		return 0;
	}
	while(p<ap){
		p=p*5+1;
		n=n*5;
	}
	if(p==ap){
		fprintf(out,"%d\n",n);
		return 0;
	}
	
	s=p;
	n1=n;
	while(s!=ap){
		p=(p-1)/5;
		n1=n1/5;
		if(p>1){
			if((s-ap)/p){
				n=n-((s-ap)/p)*n1;
				s=s-1-((s-ap)/p)*p;
			}
		}
		if(p==1){
			s--;
			n=n-n1*(s-ap);
			s=s-(s-ap);
		}
	}
	fprintf(out,"%d\n",n);
	
	return 0;
}