zl程序教程

您现在的位置是:首页 >  其它

当前栏目

最大公约数 GCD greatest common divisor

Common gcd 最大公约数
2023-09-11 14:16:15 时间

 

辗转相除法

#include <stdio.h>

int main(void) {
    int m, n, r;
    scanf("%d%d", &m, &n);
    if (m < n) {
        m = m ^ n;
        n = m ^ n;
        m = m ^ n;
    }
    while (n) {
        r = m % n;
        m = n;
        n = r;
    }
    printf("great common divisor %d\n", m);
    return 0;
}

 

更相减损法

def gcd(b1: int, b2: int) -> int:
    if b1 < b2:
        b1, b2 = b2, b1
    while b1 - b2 != b2:
        t = b1 - b2
        b1, b2 = (b2, t) if b2 > t else (t, b2)
    return b2


print(gcd(182, 98))
print(gcd(63, 98))