欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数论相关

程序员文章站 2022-07-09 10:19:44
...

辗转相除法

用于求两个数的最大公约数

int GCD(int a, int b)
{
	return (b == 0) ? a : GCD(b, a % b);
}

扩展欧几里得算法

用于求ax + by = GCD(a, b)

int exGCD(int a, int b, int & x, int & y)
{
	int d = a;
	if(b != 0)
	{
		d = exGCD(b, a % b, y, x);
		y -= (a / b) * x;
	}
	else
	{
		x = 1;
		y = 0;
	}
	return d;
}
相关标签: ACM 算法 数论