Cod sursa(job #1187161)

Utilizator MihailPJack ONeill MihailP Data 17 mai 2014 19:25:13
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<fstream>
#include<cstdio>
using namespace std;
long fact(long long N)
{
    long long s=0,p=5;
    while(N/p!=0)
    {
        s=s+N/p;
        p=p*5;
    }
    return s;
}
int main()
{
    FILE *f=fopen("fact.in","r");
    FILE *g=fopen("fact.out","w");
    long long p,l,r,m,rez;
    int ok=0;
    l=1;
    fscanf(f,"%lld",&p);

    r=400000015;
    if(p==0)
        fprintf(g,"1");
    else{
    while(r+1!=l)
    {
        m=(r+l)/2;
        rez=fact(m);
        if(rez>p)
        r=m-1;
        if(rez<p)
        l=m+1;
        if(rez==p)
        {
            ok=1;
            rez=m;
            break;
        }



    }
    if(ok==0)
        fprintf(g,"-1");
    else{
    while(rez%5!=0)
        rez--;
    fprintf(g,"%lld",rez);}}


}