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)により初期化を行うこと。