Cod sursa(job #1888345)

Utilizator dumitrescu_andreiDumitrescu Andrei dumitrescu_andrei Data 22 februarie 2017 01:39:38
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long p;

short checker(long long x)
{
    int s=0;
    for(long long i=5;i<=x;i+=5)
    {
        int q=5;
        long long w=i;
        while(w%q==0)
        {
            s+=w/q;
            w/=q;
            q*=5;
        }
        if(s>p)
            return 2;
    }
    if(s==p)
        return 1;
    return 0;

}

long long cautare_binara(long long MAX,long long Min)
{

    while(Min<MAX)
        if(checker((MAX+Min)/2)==1)
            return (MAX+Min)/2;
        else if(checker((MAX+Min)/2)==2)
            MAX=(MAX+Min)/2-1;
        else
            Min=(MAX+Min)/2+1;

    if(MAX<Min)
        return -1;

}

int main()
{
f>>p;
if(p==0)
    g<<1;
else
{
    long long MAX=1000000000;
    long long MIN=5;
    long long w=cautare_binara(MAX,MIN);
    g<<w;

}
}