朱派金


私信TA

用户名:zhupaijin

访问量:5401

签 名:

等  级
排  名 1121
经  验 3189
参赛次数 6
文章发表 21
年  龄 21
在职情况 学生
学  校 四川轻化工大学
专  业

  自我简介:

解题思路:  以表尊敬先奉代码!!!
参考代码:

#注:gcd()最大公约数;lcm()最小公倍数
#解1:利用最大公约数和最小公倍数的性质逐个遍历判断出答案
def gcd(a,b):
    for i in range(b, 0, -1):
        if a % i == 0 and b % i == 0:
          return i
def lcm(a,b):
    for i in range(num1,a*b+1):
        if i % a == 0 and i % b == 0:
          return i
num1,num2 = map(int,input().split())
if num1<num2:
    flag = num1
    num1=num2
    num2=flag
gcd_ans=gcd(num1,num2)
lcm_ans=lcm(num1,num2)
print("{:.0f} {:.0f}".format(gcd_ans,lcm_ans))

#解2:先利用辗转相除法(递归)求出最大公约数,再通过两数的积除以最大公约数求出最小公倍数
def gcd(a,b):
    if a%b==0:
        return b
    else:
        return gcd(b,a%b)
def lcm(a,b):
    ans = (a*b)/gcd_ans
    return ans
num1,num2 = map(int,input().split())
if num1<num2:
    flag = num1
    num1=num2
    num2=flag
gcd_ans=gcd(num1,num2)
lcm_ans=lcm(num1,num2)
print("{:.0f} {:.0f}".format(gcd_ans,lcm_ans))


 

0.0分

2 人评分

  评论区

  • «
  • »