RationalReconstruction[p_, q_, Bnd_] := 
        Module[{a = p, b = q, u0 = 0, u1 = 1, v0 = 1, v1 = 0}, 
          While[Abs[v1] ≤ Bnd, qt = Quotient[a, b]; 
            b = a - qt (a = b); u1 = u0 + qt (u0 = u1); 
            v1 = v0 + qt (v0 = v1)]; (u0/v0)];

fid  = OpenRead["X1.txt"];
n = Read[fid]; X1  =  ReadList[fid];

α = (2^30);
p = Fold[(α #1  + #2) &, 0, X1]; 
    q = (α^Length)[X1];
H = (∏_(i = 1)^20000) Prime[i];
x1 = RationalReconstruction[p, q, H];

Numerator@x1

Denominator@x1