编程要求:
本关的编程任务是补全src/step3/scope.py
文件的代码,实现相应的功能。具体要求如下:
- 编写程序,功能是求两个正整数的最小公倍数;
- 要求实现方法:先定义一个
private
函数_gcd()
求两个正整数的最大公约数,再定义public
函数lcm()
调用_gcd()
函数求两个正整数的最小公倍数; - 调用函数
lcm()
,并将输入的两个正整数的最小公倍数输出。
本关涉及的代码文件src/step3/scope.py
的代码框架如下:
# coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 请在此添加代码,求两个正整数的最小公倍数
########## Begin ##########
########## End ##########
# 调用函数,并输出a,b的最小公倍数
print(lcm(a,b))
测试说明:
本关的测试文件是src/step3/scope.py
,测试过程如下:
- 平台自动编译生成
scope.exe
; - 平台运行
scope.exe
,并以标准输入方式提供测试输入; - 平台获取
scope.exe
输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。
以下是平台对src/step3/scope.py
的样例测试集:
测试输入:
5
6
预期输出:
30
测试输入:
8
10
预期输出:
40
测试输入:
16
24
预期输出:
48
测试输入:
132
214
预期输出:
14124
开始你的任务吧,祝你成功!
答案:
# coding=utf-8
# 输入两个正整数a,b
a = int(input())
b = int(input())
# 请在此添加代码,求两个正整数的最小公倍数
########## Begin ##########
def _gcd(x, y):
GCD = 0
if x > y:
temp = x
x = y
y = temp
# 使得 x < y
for i in range(x):
j = x - i
if(x % j == 0 and y % j == 0):
GCD = j
break
# GCD为最大公约数
LCM = int(x * y / GCD)
# 最小公倍数=两数的乘积/最大公约(因)数
return LCM
def lcm(x, y):
return _gcd(x, y)
########## End ##########
# 调用函数,并输出a,b的最小公倍数
print(lcm(a,b))