Cod sursa(job #471435)

Utilizator andra23Laura Draghici andra23 Data 18 iulie 2010 22:24:04
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
#include<iostream>
using namespace std;

int ff(long long n){
    long long p = 5;
    int nr = 0;
    while (n/p != 0){
        nr = nr + n/p;
        p = p*5;
    }
    return nr;
    
}

int main(){
    ifstream f("fact.in");
    ofstream g("fact.out");
    int p; 
    f>>p;
    if (p == 0)
        g<<1;
    else {
        long long n, st, dr, m; 
        int x;
        st = 1; dr = 6103515625LL;
        m = (st + dr)/2;
        x = ff(m);
        while (st <= dr && x != p){
            if (p < x)
                dr = m - 1;
            else
                st = m + 1;
            m = (st + dr)/2;
            x = ff(m); 
        }
        if (st > dr)
            g<<"-1"<<endl;
        else g<<(m-m%5);
    }
    return 0;
}