python最简分数_1062 最简分数 (20 分)python

# 两个分数的值可以大于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

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

list1.append(str(i) + "/" + str(k))

i = i+1

print(" ".join(list1))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值