Cod sursa(job #1776714)

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

int p;
ifstream fin("fact.in");
ofstream fout("fact.out");

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

int main()
{
    fin>>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)
        fout<<-1;
    else
        fout<<best;
    return 0;
}