Cod sursa(job #1760448)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 20 septembrie 2016 20:19:03
Problema Factorial Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
inline int legendre(int x)
{
    int co=0,p=5;
    while(p<=x)
    {
        co+=x/p;
        p*=5;
    }
    return co;
}
int cbin(int p)
{
    int i,j,mij,k;
    i=1;j=480000000;
    while(i<=j)
    {
        mij=(i+j)/2;
        k=legendre(mij);
        if(k==p)
            return mij-mij%5;
        if(k>p)
            j=mij-1;
        else
            i=mij+1;
    }
    return -1;
}
int main()
{
    FILE *fin,*fout;
    fin=fopen("fact.in","r");
    fout=fopen("fact.out","w");
    int p;
    fscanf(fin,"%d",&p);
    p=cbin(p);
    if(!p)
        fprintf(fout,"1");
    else
        fprintf(fout,"%d",p);
    fclose(fin);
    fclose(fout);
    return 0;
}