# 两个分数的值可以大于1,所以要使用while循环,每次循环不断递增,直到大于最大的那个分数 import math a,b,k = map(str,input().split(" ")) k = int(k) n1,m1 = map(int,a.split("/")) n2,m2 = map(int,b.split("/")) res1 = n1/m1 res2 = n2/m2 res3 = min(res1,res2) #拿到两个分数最小值 res4 = max(res1,res2) #拿到两个分数最大值 list1 = [] list2 = [] for i in range(2,int(math.sqrt(k))+1): #拿到k所有因子,放入list2中 if k%i == 0: list2.append(i) list2.append(k//i) i = 1 if res3<1/k<res4: # 首先判断1/k是否在两个分数范围中 list1.append(str(1) + "/" + str(k)) while 1: # 循环判断 flag = 0 for j in list2: if i%j == 0: flag = 1 break if flag == 1: i = i + 1 continue if res4 < i / k: break if k%i != 0 and res3<i/k<res4: list1.append(str(i) + "/" + str(k)) i = i+1 print(" ".join(list1))
1062 最简分数 (20 分)python
猜你喜欢
转载自blog.csdn.net/weixin_41775301/article/details/87791405
今日推荐
周排行