多倍長整数の平方根


関数名
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整数に変換する、 平方根の計算