Cod sursa(job #1762710)

Utilizator NiceDayCraciun Mihai NiceDay Data 24 septembrie 2016 00:29:25
Problema Factorial Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <math.h>
#include <iostream>
using namespace std;

ifstream f1("fact.in");
ofstream f2("fact.out");
long long nr;
long long dr=400000015;
long long st = 1;
long long mij;


long long cifre(long long x){
    long long k=0;
    for(double i =1;x/((int)pow(5,i))!=0;i+=1){
        k=k+(x/((int)pow(5,i)));
    }
    return k;
}

long long binar(long long x){
    mij = dr/st;
    int t;
    while(dr>=st){
        mij = (dr+st)/2;
        if(cifre(mij)<x) st=mij+1;
        else dr=mij-1;
    }
    if(cifre(mij)==x)return mij;
    else return -1;
}

int main()
{
    f1 >> nr;
    if(nr==0) f2 << 1;
    else f2 <<binar(nr);
    return 0;
}