第6关:求满足条件的分数

目录

任务描述

程序分析

编程要求

测试说明


任务描述

本关任务:设计一个程序,求同时满足下列两个条件的分数x的个数: (1)a1​<x<b1​,其中ab从键盘输入,ab均为正整数,且a>b,若输入不正确,则提示“Input Error” (2)x的分子分母都是素数,且分母是2位数。

程序分析

x=m/n,a=6,b=5根据条件(2),有10≤n≤99;根据条件(1),有5m≤n≤6m,并且m、n均为素数。 可以用穷举法来求解这个问题,并设计一个函数来判断一个数是否为素数,是素数返回值为True,否则为False

编程要求

根据提示,在右侧编辑器补充代码,请将判断素数的函数isprime(n) 及主函数main()的定义补充完整,以实现程序功能。

测试说明

平台会对你编写的代码进行测试:

测试输入1: please input a:6 please input b:5 预期输出1: 满足条件的数有13个

测试输入2: please input a:12 please input b:7 预期输出2: 满足条件的数有25个

测试输入3: please input a:5 please input b:6 预期输出3: Input Error


开始你的任务吧,祝你成功!

def isprime(n):
    if n > 1:
        for i in range(2,n):#for else语句 执行完for循环内容后才执行else内容
            if n%i == 0:    #解决了判断2是否为素数的问题
                            #range(2,2) 会返回空值并跳过此循环语句并执行else
                return False
                break
        else:
            return True
    else:
        return False
a=int(input("please input a:"))
b=int(input("please input b:"))
count = 0
if(a<0 or b<0 or a<=b):
    print("Input Error")
else:   ##以下为求出满足条件的分数的个数
    for Numerator in range(1,100): 
        if isprime(Numerator)==True:
        #固定分子,分母进行遍历
            for denominator in range(10,100):
                if isprime(denominator)==True:
                    x = Numerator/denominator
                    if  x>=1/a and x<=1/b:
                        count +=1  
    print("满足条件的数有{}个".format(count))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式Dora

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值