Cod sursa(job #40479)

Utilizator znakeuJurba Andrei znakeu Data 27 martie 2007 14:17:00
Problema Factorial Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
int main()
{
	int k,k1,k2,kt,f=0,ko;
	
	FILE *in=fopen("fact.in","r");
	FILE *out=fopen("fact.out","w");
	fscanf(in,"%d",&k);
	fclose(in);
	
	if (k)
	{
		k1=k;
		while (f==0)
		{
			kt=k1;
			k2=0;
			while (kt)
			{
				k2+=kt/5;
				kt/=5;				
			}
			if (k1+k2==k)
				f=1;
			if (k1+k2<k)
			{
				while (k1+k2<k)
				{
					kt=k1;
					k2=0;
					while (kt)
					{
						k2+=kt/5;
						kt/=5;				
					}
					k1++;
				}
				kt=k1;
				k2=0;
				while (kt)
				{
					k2+=kt/5;
					kt/=5;				
				}
				if (k1+k2==k)
					f=1;
				if (!f)
					f=-1;
			}
			if (!f)
				if (k2>1)
					k1-=k2/2;
				else
					k1--;
			ko=k1+k2;
		}
		
		if (f==1)
			fprintf(out,"%d\n",k1*5);
		else
			fprintf(out,"-1\n");
	}
	else
		fprintf(out,"1\n");
	fclose(out);
	
	return 0;
}