public static XInt RecProduct(long[] s, int n, int m) { if (n > m) { return XInt.One; } if (n == m) { return new XInt(s[n]); } int k = (n + m) >> 1; return RecProduct(s, n, k) * RecProduct(s, k + 1, m); }