Cod sursa(job #1752018)

Utilizator fulger13Pomirleanu Sebastian fulger13 Data 2 septembrie 2016 16:07:38
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream q("fact.in");
ofstream w("fact.out");

int nr0(int n)
{
    int i=5,s=0;
    while(i<=n)
    {
        s+=n/i;
        i*=5;
    }
    return s;
}

int main()
{int p;
    long long n,i,lim, cur;  ///cur- nr. curent din cautarea binara

    q>>p;
    if(p==0)
    {
        w<<"1";
        return 0;
    }
    n=0;
    lim=400000015;
    i=1;
    while(1)
    {
        cur=(i+lim)/2;
        n=nr0(cur);
        if(n<p)i=cur+1;
        else if(n>p) lim=cur-1;
            else if(n==p)
                {
                    while(n==p)
                    {
                        cur--;
                        n=nr0(cur);
                    }
                    w<<cur+1;
                    return 0;
                }
        if(nr0(i)>p)
        {
            w<<"-1";
            return 0;
        }

    }

    return 0;
}