You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用更简洁的方法实现该Python最大公约数(GCD)程序?

更简洁的GCD实现方法

你提供的这段GCD代码逻辑可行,但存在变量命名不规范(比如用g同时作为函数名和内部变量)、冗余变量(mod可省略)的问题,下面是几种更简洁且规范的实现方式:

1. 优化迭代版(辗转相除法)

去掉冗余变量,利用Python元组解包简化循环逻辑,同时规范命名:

def gcd(x, y):
    while x != 0:
        x, y = y % x, x
    return y

x = int(input("x: "))
y = int(input("y: "))
print(gcd(x, y))

一行完成取模与变量交换,代码更紧凑易读。

2. 递归版

用递归实现辗转相除法,代码行数更少,逻辑直观:

def gcd(x, y):
    return x if y == 0 else gcd(y, x % y)

x = int(input("x: "))
y = int(input("y: "))
print(gcd(x, y))

递归逻辑和迭代版一致,用递归调用替代循环结构。

3. 直接使用Python内置函数

Python 3.5及以上版本的math模块内置了gcd函数,直接调用是最简洁的方案:

import math

x = int(input("x: "))
y = int(input("y: "))
print(math.gcd(x, y))

注意:math.gcd仅接受非负整数参数,若输入负数会自动取绝对值计算。

内容的提问来源于stack exchange,提问作者Soham Pradhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:55:20