Cod sursa(job #2222541)

Utilizator AlexNicuNicu Alexandru AlexNicu Data 17 iulie 2018 11:25:23
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>

using namespace std;

ifstream cin("fact.in");
ofstream cout("fact.out");
int main() {
    long long i,st,dr,med,j;
    unsigned long long p51,sum;
    int last=-1,p;
    cin>>p;
    st=1;
    dr=9223372036854775807;
    while(st<=dr) {
        med=st+((dr-st)/2);
        sum=0;
        p51=1;
        i=0;
        while(p51<=med) {
            i++;
            p51*=5;
        }
        p51=5;
        i--;
        for(j=1; j<=i; j++) {
            sum+=med/p51;
            p51*=5;
        }
        if(sum>=p) {
            dr=med-1;
            if(sum==p)
                last=med;
        } else {
            st=med+1;
        }
    }
    cout<<last;
    return 0;
}