题目
从标准输入读入两个正整数 a 和 b,使用欧几里得算法(辗转相除法)计算并输出它们的最大公约数(GCD)。
输入格式:一行输入两个正整数 a 和 b,以空格分隔。
输出格式:输出一个整数,表示 a 和 b 的最大公约数,末尾换行。
数据范围与约定:1 ≤ a, b ≤ 109。
思路与算法
1. 欧几里得辗转相除原理
两数的最大公约数等于较小数与取模余数的最大公约数,即 gcd(a, b) = gcd(b, a % b)。
2. Pythonic 迭代更新
使用双变量同时赋值 x, y = y, x % y,循环直到 y == 0 时终止,此时的 x 即为最大公约数。
完整程序
a, b = map(int, input().split())
# 欧几里得辗转相除法求最大公约数
while b != 0:
a, b = b, a % b
print(a)运行示例
输入:
48 18输出:
6