Cod sursa(job #1119714)

Utilizator NarTooNNever Roll NarTooN Data 24 februarie 2014 19:39:57
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");

int p, i=0, j=0, dr, st, m, s, d, produs;

int main()
{
    f >> p;
    st = 0; dr = 2000000000;
    while (st + 1 < dr)
    {
        m = (dr + st)/2;
        i = 0;
        produs = 5;
        while (m/produs > 0)
        {
            i = i + m/produs;
            produs = produs*5;
        }
        if (i < p)
        {
            st = (dr + st)/2;
        }
        else dr = (dr + st)/2;
    }
    i = 0;
    produs = 5;
    while (st/produs > 0)
    {
        i = i + st/produs;
        produs = produs*5;
    }
    produs = 5;
    while (dr/produs > 0)
    {
        j = j + dr/produs;
        produs = produs*5;
    }
    if (p == 0) g << 1;
    else
        if ((i == p) && (i != 0)) g << st;
        else
            if ((j == p) && (j != 0)) g << dr;
            else g << -1;
}