Cod sursa(job #2620271)

Utilizator andreea.vasilescuAndreea Vasilescu andreea.vasilescu Data 28 mai 2020 17:01:51
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long nrzero(long long n)
{
    //Un 0 de la sfarsitul unui numar este format prin inmultire de 5*2
    //Caut atatia divizori ai lui 5 pana ajung la n, am grija ca un nr poate avea 5 la o putere
    long long put5=5,cnt=0;
    while(n/put5)
    {
        cnt+=n/put5;
        put5*=5;
    }
    return cnt;
}
long long cautbin(int n)
{
    long long poz=0,i=1LL*1<<60;
    for(;i>0;i/=2)
        if(i+poz<1LL*1<<60 && nrzero(i+poz)<n)
            poz+=i;
    if(nrzero(poz+1)==n)
        return poz+1;
    else return -1;
}
int main()
{
    int n;
    in>>n;
    out<<cautbin(n);
    return 0;
}