Cod sursa(job #1814473)

Utilizator PinkiePie1189Preoteasa Mircea-Costin PinkiePie1189 Data 24 noiembrie 2016 00:44:31
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
FILE*fin,*fout;
inline int nr_zero(int N)
{
    int put=5;
    int zero=0;
    while(N/put)
    {
        zero+=N/put;
        put*=5;
    }
    return zero;

}
inline int caut(int st,int dr,int P)
{
    while(st<=dr)
    {
        int mij=(st+dr)/2;
        int opt=nr_zero(mij);// ca sa ne fie bine,sa nu ne fie rau
        if(opt==P)
        {
            return mij-mij%5;
        }
        if(opt<P)
        {
            st=mij+1;
        }
        if(opt>P)
        {
            dr=mij;
        }
    }
    return -1;
}
int main()
{
    fin=fopen("fact.in","r");
    fout=fopen("fact.out","w");
    int P;
    fscanf(fin,"%d",&P);
    if(P==0)
    {
        fprintf(fout,"1");
    }
    fprintf(fout,"%d",caut(4*P/5,5*P,P));
    fclose(fin);
    fclose(fout);
    return 0;
}