【思特奇杯·云上蓝桥-算法训练营】第1周:稍小分数

题目

回到小学----
真分数:分子小于分母的分数
既约分数:分子分母互质,也就是说最大公约数是1
x星球数学城的入口验证方式是:
屏幕上显示一个真分数,需要你快速地找到一个比它小的既约分数,要求这个分数越大越好。
同时限定你的这个分数的分母不能超过100。

解题思路

  • 暴力解题。
  • 输入分子和分母,写一个判断分数是否是既约分数的函数。
  • 然后逐渐减小分子的数值,直到找到比原来分数小的那个既约分数。
  • 注意: 需要处理一下分母大于100的情况,如果分母大于100,那么分母和分子就每次除以10,直到分母不大于100为止。

Code

# -*- coding:UTF-8 -*-
"""
@Project :蓝桥杯训练营
@File    :稍小分数.py
@IDE     :PyCharm
@Author  :Kinght_123
@Date    :2022/1/5 9:10
"""
a = int(input("请输入分数的分子:"))
b = int(input("请输入分数的分母:"))
num = float(a / b)


def check(a, b):
    for i in range(b + 1):
        if b % a == 0:
            return False
    return True


while a != 0:
    while b > 100:
        a /= 10
        b /= 10
    if check(int(a), int(b)) and a / b != num:
        print(f'{int(a)} / {int(b)}')
        break
    a -= 1

运行结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kinght_123

我会继续努力创造更多的优秀作品

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值