Cod sursa(job #1642412)

Utilizator bogdanblagaitBlaga Bogdan bogdanblagait Data 9 martie 2016 14:00:11
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

int p;

int pow(int a, int b)
{
    if(b == 0)
    {
        return 1;
    }
    if(b == 1)
    {
        return a;
    }
    if(b % 2 == 0)
    {
        return pow(a*a,b / 2);
    }
    else
    {
        return a*pow(a*a, (b-1) / 2);
    }

}

int f(int n)
{
    if(n == 0)
    {
        return 0;
    }

    int i = 1, s = 0;

    while(n >= pow(5,i))
    {
        s += n/(pow(5,i));
        i++;
    }
    return s;
}

int main()
{
    fin >> p;

    for(int i = 1; i < 400000025; i++)
    {
        if(f(i) == p)
        {
            fout << i << '\n';
            break;
        }
        else if(f(i) > p)
        {
            fout << -1 << '\n';
            break;
        }
    }
    return 0;
}