Cod sursa(job #1583246)

Utilizator stefangaitaGaita Stefan Lucian stefangaita Data 28 ianuarie 2016 20:02:23
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <climits>
using namespace std;
FILE *f,*g;
int main()
{
    f=fopen("fact.in","r");
    g=fopen("fact.out","w");
    int p,ls,ld,mij,n,nr5,rez;
    fscanf(f,"%d",&p);
    ls=1;
    ld=INT_MAX;
    if(p==0)
        fprintf(g,"%d",1);
    else
    {
    while(ls<=ld)
    {
        mij=(ls+ld)/2;
        rez=0;
        nr5=5;
        while(nr5<=mij)
        {
            rez+=mij/nr5;
            nr5*=5;
        }
        if(rez<p)
        {
            ls=mij+1;
        }
        else if(rez>p)
        {
            ld=mij-1;
        }
        else
        {
            n=mij;
            n-=n%5;
            break;
        }
    }

    if(ls>ld)
    {
        fprintf(g,"%d",-1);
    }
    else
        fprintf(g,"%d",n);
    }
    fclose(f);
    fclose(g);

    return 0;
}