编程要求
补全代码,具体要求如下:
定义一个函数gcd,功能是求两个正整数的最大公约数;
调用函数gcd,得到输入的两个正整数的最大公约数,并输出这个最大公约数。
涉及代码框架如下:
#coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 请在此添加代码,求两个正整数的最大公约数
#********** Begin *********#
#********** End **********#
# 调用函数,并输出最大公约数
print(gcd(a,b))
测试说明
测试过程如下:
平台自动编译生成return.exe;
平台运行return.exe,并以标准输入方式提供测试输入;
平台获取return.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step2/return.py的样例测试集:
测试输入:
1
8
预期输出:
1
测试输入:
9
3
预期输出:
3
测试输入:
9
21
预期输出:
3
测试输入:
126
36
预期输出:
18
结果代码如下:
#coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 请在此添加代码,求两个正整数的最大公约数
#********** Begin *********#
#定义一个gcd函数,参数为a,b
def gcd(a,b):
"""
欧几里得算法----辗转相除法
:param a: 第一个数
:param b: 第二个数
:return: 最大公约数
"""
"""
① 整数A对整数B进行取整, 余数用整数C来表示 举例: C = A % B
② 如果C等于0,则C就是整数A和整数B的最大公约数
③ 如果C不等于0, 将B赋值给A, 将C赋值给B ,然后进行 1, 2 两步,
直到余数为0, 则可以得知最大公约数
"""
#a对b取整,得到结果赋值到c
c = a % b
#如果c不等于0进入循环
while (c!=0):
#c不等于0将b的值赋值给a,c的值赋值给b
a = b
b = c
#然后继续取整
c = a % b
# 如果最终余数为0 公约数就计算出来了
return b
#********** End **********#
# 调用函数,并输出最大公约数
print(gcd(a,b))