11.3第一次培训课后习题

#找到[1,1000]里的所有素数


为了找出[1,1000]内的所有素数,我用范围内的数除以小于它的且大于1的数,通过判断有无余数来确定是否为素数。

于是

for i in range (1,1000):
    if i>1:
        for a in range (2,i):
            if (i%a)==0:
                break
            else:
                print(i)

运行结果
在这里插入图片描述

但是发现结果出现很多重复的数字,也没有把素数筛选出来,后来发现for else和if else还是有很大区别的,于是改了一下

for i in range (1,1000):
    if i>1:
        for a in range (2,i):
            if (i%a)==0:
                break
        else:
            print(i)

成功运行啦
在这里插入图片描述

完成之后觉得这段代码可以把任意范围内所有素数都挑选出来,于是做了一点点小优化

min=int(input('输入范围下限'))
max=int(input('输入范围上限'))
for i in range(min,max+1):
    if i > 1:
        for a in range(2,i):
            if (i % a) == 0:
                break
        else:
            print(i)

运行结果
在这里插入图片描述


#判断[0,3,2,1]是否为山脉数值

放上一段代码

a=0
b=3
c=2
d=1
if a<b and b<c and c>d:
    print('此数组为山脉数组')
elif a<b and b>c and c>d:
    print('此数组为山脉数组')
else:
    print('此数组不是山脉数组')

仅仅解决这个数组是否为山脉数组还是比较简单的,但是缺陷也比较明显,无法判断其他数组的是否为山脉数组,试了好几种都没办法解决,就留给师兄师姐来解答吧TT


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值