解题思路: 以表尊敬先奉代码!!!
参考代码:
#注: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 人评分