[ 簡単な説明 ]
2数の最大公約数を求めます。アルゴリズムはユークリッドの互除法です。 |
/* lgcd.c */ #include "longint.h" /* GCD */ LINT lgcd(LINT a, LINT b) { LINT w, x; x.len = x.sign = 0; if(a.sign == -1 || b.sign == -1) { fprintf(stderr, "Error : Illegal parameter in lgcd()\n"); return x; } do { ldivide(a, b, &x); a = b; b = x; } while(b.len > 0); return a; } |