>>456
前に見たような課題だな。

print()が遅いから計算だけをそれぞれ実行させた場合
BigInteger:45ms
Qinteger:80ms
くらいだった。あとは自力でチューニングしてみてくれ。

  private int maxDigit = 0;
  public Qinteger times(int n) {
    long temp;
    int carry = 0;
    for (int i = MAXARR - 1; maxDigit < 0 && i >= 0; i--) if (num[i] != 0) { maxDigit = i; break; }
    for (int i = 0; i < MAXARR && i <= maxDigit; i++) {
      if (num[i] == 0) { num[i] = carry; carry = 0; continue; }
      temp = (long)num[i] * n;
      num[i] = carry + (int)(temp % MAXINT);
      carry = (int)(temp / MAXINT);
      if (i == maxDigit && carry != 0) maxDigit++;
    }
    return this;
  }