Cod sursa(job #2156563)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 8 martie 2018 20:13:53
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
using namespace std;

ifstream fin("fact.in");
ofstream fout("fact.out");

unsigned long long n,p,i,st,dr,mid,a,x;

int main(){
    fin>>p;

    st=1;
    dr=1;
    for(i=1;i<=1000000000;i++){
        dr*=10;
    }
    while(st<=dr){
        mid=(st+dr)/2;
        a=5;
        x=0;
        while(a<=mid){
            x+=mid/a;
            a*=5;
        }
        if(x<p)
            st=mid+1;
        else
            dr=mid-1;
    }

    a=5;
    x=0;
    while(a<=st){
        x+=st/a;
        a*=5;
    }
    if(x==p)
        fout<<st;
    else
        fout<<"-1";

    return 0;
}