多倍長整数の平方根


関数名
mpRoot  多倍長整数の平方根を求める
形式
int mpRoot(int *q, int *a);
引数
q  (出力)計算結果となる多倍長整数の平方根
a  (入力)計算対象となる多倍長整数
関数値
正常に計算できたときは0。失敗したときは-1。
注意事項
配列の各要素 ai(i は 1 以上)は1語を表し、 1語で表し得る最大の整数は 9999 とする。語の長さは a0 の値で表す。すなわち、多倍長整数は
anKn-1+ an-1Kn-2+...+a2K+ a1
で表現する。ただし、K=10000、n=a0

用例(mpRoot-test.c

プログラム(mpRoot.c


説明
大きな数の平方根は、除算と同じ効率で計算できる。

ほかに、ペル方程式を利用した計算方法もある。

関連関数
多倍長整数の加算多倍長整数の減算多倍長整数の乗算多倍長整数の除算多倍長整数の大小比較数列を多倍長整数に変換する多倍長整数を数列に変換するlong整数を多倍長整数に変換する多倍長整数をlong整数に変換する平方根の計算