Cod sursa(job #1183521)

Utilizator kappykkDragos kappykk Data 9 mai 2014 15:25:37
Problema Factorial Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <fstream>

using namespace std;

int fact(int n){
    int x = 5,rez=0;
    while(x <= n){
        rez += n / x;
        x *=5;
    }
    return rez;
}

int main()
{
    ifstream f("fact.in");
    ofstream g("fact.out");
    int n,p;
    f>>p;
    int st = 1, dr = (1LL<<30), ok = 0, m;
    while(st < dr){
            m = (st + dr) / 2;
            if(p > fact(m)){
                st = m + 1;
            }
            if(p < fact(m)){
                dr = m - 1;
            }
            if(p == fact(m)){
                ok = 1;
                break;
            }
        }

    while(fact(m) >= p && m >= 0){
        if(fact(m) >= p)
            --m;
    }
    if(ok)
        g<<m+1;
    else
        g<<"-1";
    ///cout<<fact(1LL<<30);
    return 0;
}