Cod sursa(job #2327037)

Utilizator alexmuresan3Muresan Alexandru Dorian alexmuresan3 Data 24 ianuarie 2019 12:49:27
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
long long calcul(long long x)
{
    long long nr=0,i=5;
    while(i<x)
    {
        nr+=x/i;
        i*=5;
    }
    return nr;
}
int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    long long p;
    f>>p;
    if(p==0)
    {
        g<<1;
    }
    else
    {
        long long st=1,dr=500000000;
        while(st<dr)
        {
            long long mij=(st+dr)/2;
            long long rez=calcul(mij);
            if(rez<p)
                st=mij+1;
            if(rez>p)
                dr=mij-1;
            else if(rez==p)
            {
                while(calcul(mij)==p)
                    mij--;
                mij++;
                g<<mij;
                return 0;
            }
        }
        g<<-1;
    }
}