1.コーディング上の注意#include "longint.h" を指定すること。注:内部で,標準ヘッダファイル <stdio.h>, <ctype.h>, <sys/types.h>, 2.ライブラリ一覧(1) 構造体"longint.h" 内で、多倍長整数の1要素を、下記構造体( LINT 型 )として定義している。 |
typedef struct{
int len;
int sign;
int num [501]; } LINT;
|
| 関数名及び型 | 引数及び型 | 機能 | |
| LINT ladd(a, b) | LINT a, b; | 加算 | 通常( a + b ) |
| LINT aux1(a, b) | LINT a, b; | 絶対値( |a| + |b| ) | |
| LINT lsub(a, b) | LINT a, b; | 減算 | 通常( a − b ) |
| LINT alsub(a, b) | LINT a, b; | 絶対値( |a| + |b| 、 |a| ≧ |b| ) | |
| void linc(a, n) | LINT *a; int n; |
インクリメント | 通常(単位 n ) |
| void alinc(a, n) | LINT *a; int n; |
絶対値(単位 n )インクリメント(n≧0) | |
| void ldec(a, n) | LINT *a; int n; |
デクリメント | 通常(単位 n ) |
| void aldec(a, n) | LINT *a; int n; |
絶対値(単位 n )デクリメント(n≧0) | |
| LINT lmul(a, b) | LINT a, b; | 乗算関係 | 通常( a × b ) |
| LINT lmulp(a, b) | LINT a, b; | 符号無視 | |
| void lmul1(a, b) | LINT *a, b; | a × b → a | |
| LINT lsqr(a) | LINT a; | 平方 | |
| LINT lpwr(a, n) | LINT a; int n; |
ベキ乗 | |
| LINT lkaijo(n) | int n; | 階乗 | |
| LINT ldivide(a, b, r) | LINT a, b, *r; | 除算関係 | 戻り値:除算値、r : 剰余 |
| LINT lmod(a, b) | LINT a, b; | 剰余 | |
| LINT lpwrmod(a, b, n) | LINT a, b, n; | 法 n における剰余 | |
| LINT linv(s, n) | LINT s, n; | 法 n における逆数 | |
| LINT sadd(a, n) | LINT a; int n; |
対 int 四則演算 | 加算 |
| LINT ssub(a, n) | LINT a; int n; |
減算 | |
| LINT smul(a, n) | LINT a; int n; |
乗算 | |
| void smul1(a, n) | LINT *a; int n; |
乗算( a × n → a ) | |
| LINT sdiv(a, n, r) | LINT a; int n, *r; |
戻り値:除算、r :剰余 | |
| void sdiv1(a, n, r) | LINT *a; int n, *r; |
a ÷ n → a、r :剰余 | |
| int smod(a, n) | LINT a; int n; |
剰余 | |
| LINT lread(s) | char *s; | LINT 型定数設定 | 文字列 → LINT 型 |
| LINT lset(n) | int n; | int → LINT 型 | |
| void larrayread(a, s, n) | LINT *a; char *s[ ]; int n; |
文字列配列 → LINT 型配列 | |
| void larrayset(a, x, n) | LINT *a; int *x; int n; |
int 配列 → LINT 型配列 | |
| void lwrite(s, a) | char *s; LINT a; |
LINT 型数値表示 | 標準出力 |
| void ldisp(s, a) | char *s: LINT a; |
stderr 出力 | |
| void lup(a, n) | LINT *a; int n; |
シフト | 桁上げ |
| void ldown(a, n) | LINT *a; int n; |
桁下げ | |
| LINT lgcd(a, b) | LINT a, b; | 最大公約数 | 2数 間 |
| LINT llgcd(a, n) | LINT a[ ]; int n; |
配列( n :要素数) | |
| LINT llcm(a, b) | LINT a, b; | 最小公倍数 | 2数 間 |
| LINT lllcm(a, n) | LINT a[ ]; int n; |
配列( n :要素数) | |
| void lfactor(x) | LINT x; | 素因数分解 | |
| int lprime_chk(x) | LINT x; | 素数判定 (戻り値=1:素数,=0:合成数) |
|
| LINT det(a, n) | LINT *a; int n; | 行列式の値(n×n) | |
| int iset(a) | LINT a; | LINT → int 変換 | |
| int lcmp(a, b) | LINT a, b; | 比較関数 | |
| LINT lsqrt(a) | LINT a; | 平方根 | |
| void lswap(a, b) | LINT *a, *b; | 入替え | |
| LINT lrnd(n) | int n; | 乱数 | n 桁の乱数(*1) |
| LINT lrnd1(a) | LINT a; | 0 < x < a の乱数 | |
(*1) 乱数ライブラリの urnd1( ) を使用。init_urnd1(seed)により初期化を行うこと。