Cod sursa(job #2216185)

Utilizator Raresr14Rosca Rares Raresr14 Data 25 iunie 2018 19:38:26
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int c,st,dr,mid,nr,p;
int main(){
    fin>>c;
    if(c==0){
        fout<<"1";
        return 0;
    }
    st=1;
    dr=INT_MAX;
    while(st<=dr){
        mid=(st+dr)/2;
        nr=0;
        p=5;
        while(p<=mid){
            nr+=(mid/p);
            p*=5;
        }
        if(c>nr)
            st=mid+1;
        else
            dr=mid-1;
    }
    p=5; nr=0;
    while(p<=st){
        nr+=(st/p);
        p*=5;
    }
    if(nr==c)
        fout<<st;
    else
        fout<<"-1";
    return 0;
}