Cod sursa(job #1776712)

Utilizator MithrilBratu Andrei Mithril Data 11 octombrie 2016 19:02:53
Problema Factorial Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>
using namespace std;

int p;

int trailingZeroes(int m){
    int p=5;
    int cnt=0;
    while(m/p){
        cnt+=m/p;
        p=p*5;
    }
    return cnt;
}

int main()
{
    cin>>p;
    int left=1;
    int right=INT_MAX;
    int best=0;
    while(left<=right){
        int m=left+(right-left)/2;
        int x = trailingZeroes(m);
        if(x==p){
            best=m;
            right=m-1;
        }
        else if(x<p)
            left=m+1;
        else
            right=m-1;
    }
    if(best==0)
        cout<<-1;
    else
        cout<<best;
    return 0;
}