Cod sursa(job #868821)

Utilizator sddddgjdZloteanu Anastasia sddddgjd Data 31 ianuarie 2013 17:43:38
Problema Factorial Scor 60
Compilator c Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
int p;
FILE *fout;
int val(int k)
{
    long long s=0;
    while(k>=5)
    {
        s=s+k/5;
        k=k/5;
    }
    return s;
}
int caut(int s, int d)
{
    if(s>d)
        return -1;
    else
    {
        int m =(s+d)/2;
        int a=val(m);
        if(a==p)
        {
            while(m%5!=0)
                m--;
            return m;
        }
        if(a>p)
            return caut(s,m-1);
        else
            return caut(m+1,d);
    }
}
int main()
{
    FILE *fin;
    fin=fopen("fact.in","r");
    fout=fopen("fact.out","w");
    fscanf(fin,"%d",&p);
    if(p==0)
        fprintf(fout,"%d",1);
    else
    fprintf(fout,"%d",caut(1,100000000));
    return 0;
}