Cod sursa(job #795667)

Utilizator tudorv96Tudor Varan tudorv96 Data 9 octombrie 2012 12:00:21
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <vector>

using namespace std;

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

int n;
int ad;
int r = 50000000;
bool found = false;
vector <int> a;

int main ()
{
    fin >> n;
    if (!n)
        fout << 1;
    else{
    while (!found)
    {
        ad = 0;
        for (int i = 5; i <= r; i = i * 5)
            ad = ad + r / i;
        for (unsigned int i = 0; i < a.size(); ++i)
            if (a[i] ==  r)
            {
                found = true;
                break;
            }
        if (found == true)
        {
            r = -1;
            break;
        }
        a.push_back (r);
        if (ad > n)
            r = r / 2;
        if (ad < n)
            r = r + r / 2;
        if (ad == n)
            found = true;
        if (r % 5 != 0)
            r = r + 5 - (r % 5);
    }
    fout << r;
    }
    fin.close ();
    fout.close ();
    return 0;
}