Cod sursa(job #2660765)

Utilizator AlexNicuNicu Alexandru AlexNicu Data 20 octombrie 2020 14:40:35
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 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;
}