Cod sursa(job #2103131)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 9 ianuarie 2018 20:12:18
Problema Factorial Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <iostream>
#include <math.h>
#include <stdlib.h>

using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");

int F(long long n)
{
    int result=0;
    long long exp=5;
    while(n>=exp)
    {
        result+=n/exp;
        exp*=5;
    }
    return result;
}

int main()
{
    int N;
    f>>N;
    if(N==0) g<<1;
    else
    {
        long long m,a=0,b=1000000000000000;
        bool found=0;
        while(a+1<b && !found)
        {
            m=(abs(a-b)>>1)+min(a,b);
            if(F(m)<N) a=m+1;
                else b=m-1;
            if(F(m)==N) found=1;
        }
        if(found)
            {
                while(F(m)==N) m--; g<<m+1;
            }
             else g<<-1;
    }

    return 0;
}