gcd.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 47 行

C
47
字号
#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 + =
减小字号Ctrl + -
显示快捷键?