Cod sursa(job #3032660)

Utilizator RazvanGabrielLazar2004Lazar Razvan Gabriel RazvanGabrielLazar2004 Data 22 martie 2023 16:11:54
Problema Factorial Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#include<bits/stdc++.h>
using namespace std;
int main(){
    ifstream in("fact.in");
    ofstream out("fact.out");
    long long int p,t=1,l=0;
    in>>p;
    long long int n=5*(p+1);
    while(t*2 <= n){
        t*=2;
    }
    for(long long int i=t;i>0;i/=2){
        long long int c=0;
        if(n>i){
            long long int k=1;
            while(k*5 <= n){
                k*=5;
            }
            for(long long int j=k;j>=5;j/=5){
                c+=(n-i)/j;
            }
        }
        if(c>=p){
            n-=i;
        }
    }
    long long int k=1;
    while(k*5 <= n){
        k*=5;
    }
    for(long long int j=k;j>=5;j/=5){
        l+=n/j;
    }
    if(l==p){
        out<<n;
    }else{
        out<<"-1";
    }
}