Cod sursa(job #181270)

Utilizator hasegandaniHasegan Daniel hasegandani Data 18 aprilie 2008 09:48:48
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
unsigned long p,s=0;

int fact5(unsigned long n)
{
	int k=1;
	while (n%5==0)
		{
		n=n/5;
		++k;
		}
	return k;
}

int main()
{
    unsigned long i;
    FILE *f=fopen("fact.in","r");
    FILE *g=fopen("fact.out","w");
    fscanf(f,"%lu",&p);
    fclose(f);
    if (p!=0)
       {
       for(i=1;s<p;)
	    if ((i%5==1) && (s+4<p))
		{
		s+=4;
		i+=4;
		}
	    else
		{
		if (i%5==0) s+=fact5(i);
		else ++s;
		++i;
		}
       if (s==p) fprintf(g,"%lu",5*i-5);
	    else fprintf(g,"-1");
       }
    else fprintf(g,"1");
    return 0;
}