gcd = 1 i = 2 判断循环首(i × i ≤ _MIN(a, b)) 判断循环首(a % i = 0 且 b % i = 0)' 收集公共质因数 a = a ÷ i b = b ÷ i gcd = gcd × i 判断循环尾() 判断循环首(a % i = 0)' a去掉a有b没有的质因数 a = a ÷ i 判断循环尾() 判断循环首(b % i = 0)' b去掉a有b没有的质因数 b = b ÷ i 判断循环尾() i = i + 1 判断循环尾() 如果(a % b = 0)' 剩余的a和b必须有一个是质数或1 gcd = gcd × b 如果(b % a = 0) gcd = gcd × a
变量循环首(_MIN(a, b), 0, -1, i) 如果真(a % i = 0 且 b % i = 0) 返回(i)
变量循环尾() 返回(1)
子程序名
返回值类型
公开
备 注
gcd2
整数型
短除法变形
参数名
类 型
参考
可空
数组
备 注
a
整数型
b
整数型
变量名
类 型
静态
数组
备 注
gcd
整数型
i
整数型
gcd = 1 i = 2 判断循环首(i × i ≤ _MIN(a, b)) 判断循环首(a % i = 0 且 b % i = 0)' 收集公共质因数 a = a ÷ i b = b ÷ i gcd = gcd × i 判断循环尾() 判断循环首(a % i = 0)' a去掉a有b没有的质因数 a = a ÷ i 判断循环尾() 判断循环首(b % i = 0)' b去掉a有b没有的质因数 b = b ÷ i 判断循环尾() i = i + 1 判断循环尾() 如果(a % b = 0)' 剩余的a和b必须有一个是质数或1 gcd = gcd × b 如果(b % a = 0) gcd = gcd × a
返回(gcd)
子程序名
返回值类型
公开
备 注
gcd3
整数型
更相减损法
参数名
类 型
参考
可空
数组
备 注
a
整数型
b
整数型
如果真(a = b) 返回(a) 如果真(a < b)' 保证a>=b 交换变量(a, b) 返回(gcd3(b, a - b))