Cod sursa(job #1654744)

Utilizator dragos000Cojanu Dragos dragos000 Data 17 martie 2016 13:50:33
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>

using namespace std;

int n;

int nrz(int n)
{
    //cout<<n<<" ";
    int nr=0;
    for(int i=5;i<=n;i*=5)
        nr+=n/i;
            //cout<<n<<" ";
    //cout<<nr<<endl;

    return nr;
}

long long cautare(long long st, long long dr)
{
    if(st>dr)return -1;
    long long poz=(st+dr)/2;
    //cout<<poz<<" ";
    //cout<<poz<<endl;
    long long ok=(nrz(poz));
    if(ok==n)return poz;
    else if(ok>n)cautare(st,poz-1);
    else if(ok<n)cautare(poz+1,dr);

}

int main()
{
    ifstream f("fact.in");
    f>>n;
    f.close();
    ofstream g("fact.out");

    if(n==0)g<<"1";
    else{
    int ok=cautare(0,10000000000);
    if(ok>0) g<<ok-ok%5;
    else g<<ok;
    }
    return 0;
}