📄 gcd.c
字号:
/* @(#)gcd.c 4.1 12/25/82 */#include <mp.h>gcd(a,b,c) MINT *a,*b,*c;{ MINT x,y,z,w; x.len=y.len=z.len=w.len=0; move(a,&x); move(b,&y); while(y.len!=0) { mdiv(&x,&y,&w,&z); move(&y,&x); move(&z,&y); } move(&x,c); xfree(&x); xfree(&y); xfree(&z); xfree(&w); return;}invert(a, b, c) MINT *a, *b, *c;{ MINT x, y, z, w, Anew, Aold; int i = 0; x.len = y.len = z.len = w.len = Aold.len = 0; Anew.len = 1; Anew.val = xalloc(1); *Anew.val = 1; move(b, &x); move(a, &y); while(y.len != 0) { mdiv(&x, &y, &w, &z); move(&Anew, &x); mult(&w, &Anew, &Anew); madd(&Anew, &Aold, &Anew); move(&x, &Aold); move(&y, &x); move(&z, &y); i++; } move(&Aold, c); if( (i&01) == 0) msub(b, c, c); xfree(&x); xfree(&y); xfree(&z); xfree(&w); xfree(&Aold); xfree(&Anew);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -