第3关:函数的使用范围:Python 作用域

编程要求:

本关的编程任务是补全src/step3/scope.py文件的代码,实现相应的功能。具体要求如下:

  • 编写程序,功能是求两个正整数的最小公倍数;
  • 要求实现方法:先定义一个private函数 _gcd()求两个正整数的最大公约数,再定义public函数lcm()调用 _gcd()函数求两个正整数的最小公倍数;
  • 调用函数lcm(),并将输入的两个正整数的最小公倍数输出。

本关涉及的代码文件src/step3/scope.py的代码框架如下:

  1. # coding=utf-8
  2. # 输入两个正整数a,b
  3. a = int(input())
  4. b = int(input())
  5. # 请在此添加代码,求两个正整数的最小公倍数
  6. ########## Begin ##########
  7. ########## End ##########
  8. # 调用函数,并输出a,b的最小公倍数
  9. print(lcm(a,b))

测试说明:

本关的测试文件是src/step3/scope.py,测试过程如下:

  1. 平台自动编译生成scope.exe
  2. 平台运行scope.exe,并以标准输入方式提供测试输入;
  3. 平台获取scope.exe输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/step3/scope.py的样例测试集:

测试输入:

  1. 5
  2. 6

预期输出:

  1. 30

测试输入:

  1. 8
  2. 10

预期输出:

  1. 40

测试输入:

  1. 16
  2. 24

预期输出:

  1. 48

测试输入:

  1. 132
  2. 214

预期输出:

  1. 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))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值