Cod sursa(job #675342)

Utilizator andreimaresuMaresu Andrei andreimaresu Data 7 februarie 2012 15:55:58
Problema Factorial Scor 5
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<stdio.h>
long int p,b=100000000;
long int div(long int a)
{
    long int nr=0;
    while(a)
    {
        nr+=a/5;
        a/=5;
    }
    return nr;
}
void caut(long int a,long int b,FILE *g)
{
    long int m;
    int ok=0;
    if(p==0) fprintf(g,"1");
        else   { while(a<=b)
                    {
                    m=(a+b)/2;
                    if(div(m)<=p) a=m+1;
                        else b=b-1;
                    }
                  m=(a+b)/2;
                  while(div(m)==p) {ok=1;
                                    m--;
                                    }
                if(ok) fprintf(g,"%ld",m+1);
                    else fprintf(g,"-1");
                }
}
int main()
{
    FILE *f=fopen("fact.in","r"),*g=fopen("fact.out","w");
    fscanf(f,"%ld",&p);
    caut(0,b,g);
    fclose(f);
    fclose(g);
    return 0;
}