privatestaticstringGetSqrt(int n) { StringBuilder result = new StringBuilder(); int integerPart = (int)Math.Sqrt(n); result.Append(integerPart);
BigInteger a = new BigInteger(integerPart); BigInteger remainder = new BigInteger(n - integerPart * integerPart); for (int i = 0; i < 99; i++) { remainder *= 100; int b = 1; while ((a * 20 + b) * b < remainder) { b++; }
b--;
remainder = remainder - (a * 20 + b) * b; a = a * 10 + b; result.Append(b); }