题解 | #游游的最小公倍数#(Python3)

游游的最小公倍数

https://www.nowcoder.com/practice/385c7aa397e54bb58f36286ab0d65156

import math
# 最大公约数
def gcd(n, m):
    return math.gcd(n, m)
# 最小公倍数
def lcm(n, m):
    return n*m//gcd(n,m)
# 询问次数
t = int(input())
for _ in range(0, t):
    # a,b两数和
    n = int(input())
    # // 是地板除(floor division)的运算符。结果只取整数部分
    a = n // 2
    b = n - a
    # 最小公约数是1
    while(gcd(a,b)!=1):
        a -= 1
        b += 1
    print(a, b)

  • a、b尽可能接近的话,最小公倍数lcm会更大,a、b互质时最大,为ab
  • 相邻两个素数间隔不会太大,很快就能枚举出来(10^13以内最大素数间隔是777)
  • 777*10^5还是可以枚举的,空间给200个(C++)
  • // 是地板除(floor division)的运算符。它用于计算两个数相除后的结果,并返回不大于结果的最大整数。具体来说,a // b 的结果是删除小数点后的部分,即取结果的整数部分,但这个整数部分是向下取整的(即向负无穷大方向取最接近的整数)。
  • python3有gcd,没有lcm要自己写
#15天刷题#
全部评论

相关推荐

菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务