Cod sursa(job #1268698)

Utilizator Vladut-Vlad Panait Vladut- Data 21 noiembrie 2014 12:13:49
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int p, n;

int f(int n)
{
    int t = 5, ret = 0;
    while(t <= n)
    {
        ret = ret + n / t;
        t *= 5;
    }
    return ret;
}
int cautbin(int left, int right)
{
    if(left>right)
        return -1;
        int m= (left + right)/2;
    if(f(m)>p)
        cautbin (left, m-1);
        else if (f(m)<p)
        cautbin(m+1, right);
        else return m;
}

int main()
{
    fin >> p;
    if(p==0)
        fout << 1;
    else
    {
    n=cautbin(1,2000000);
if (cautbin(1, 2000000)==-1)
    fout << -1;
else{
        while(n%5!=0)
        n--;
     fout << n;
    }
    }
    fin.close();
    fout.close();
    return 0;
}