昨日のexactDivideBy3()の不具合はちゃんと調べたら修正できた. ボローを伝搬させるところのif文に誤りがあった. たとえば mag[0]=2, mag[1]=0,mag[2]=1 みたいな状況で間違えた答えになる. 正しいものに書き換えたので,Divide(3)をやめてExactDivideBy3()を呼ぶようにした. /** * このインスタンスの定数 3 による整除算の商を返す. * 2**32 の法の下での 3 の乗法逆元は 0xaaaaaaab. */ private BigInteger ExactDivideBy3() { int length = magnitude.Length; int[] result = new int[length]; long x, w, q, borrow; borrow = 0L; for (int i = length - 1;