吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1062|回复: 8
收起左侧

[学习记录] for循环遍历素数

  [复制链接]
甜萝 发表于 2023-1-20 13:34
本帖最后由 paypojie 于 2023-1-20 13:37 编辑

目标:写一个for循环 用于遍历从2到9的素数 (素数除了1和它自身 不能被其他自然数整除)

count = 0   # 用来计数
for i in range(2,10):   # 外层for循环用来遍历2到9之间的数 (包括9)
    for j in range(2,i): # 内层for循环用于遍历从2到i (不包括i 遍历到i-1) 的数
        if i % j == 0:  # 进行条件判断 取余为0 说明i能整除以j 说明不是素数 
            print(i,'等于',j,'*',i // j)    
            break   # 跳出内层for循环 随即进入外层循环
    else:
        count += 1  # 进入else语句 说明是素数 计数等于自身加1
        print(i,'是一个素数')   

print('从2到9中有四个素数',count)

# 在上述代码中 内层for循环下面有else子句 只有在内层for循环遍历完所有的可迭代对象之后 才会执行else子句 
# 如果内层for循环语句是被break语句跳出的 (break用于跳出最近的for循环) 那么不会执行else子句 而是执行外层for循环


uTools_1674192979720.png


最近 学习廖大的python教程卡壳了 后面的有些很难看懂 故从头学习python官网教程 有些知识点遗忘了 当做复习一遍吧 原汁原味的官网文档很值得阅读

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tiepeng 发表于 2023-1-20 14:32
如果只为找出素数,
内层循环至目标范围的一半,可省一半时间,
内层循环至目标范围数的平方根,可省更多时间,如果是足够大的数就很明显了。
twillight 发表于 2023-1-20 15:31
qwqwqw9999 发表于 2023-1-20 15:46
 楼主| 甜萝 发表于 2023-1-20 16:06
qwqwqw9999 发表于 2023-1-20 15:46
同学习中,一个人自学好容易卡壳,难受

慢慢努力吧
 楼主| 甜萝 发表于 2023-1-20 16:07
tiepeng 发表于 2023-1-20 14:32
如果只为找出素数,
内层循环至目标范围的一半,可省一半时间,
内层循环至目标范围数的平方根,可省更多 ...

长见识了
vista_info 发表于 2023-1-20 19:41
tiepeng 发表于 2023-1-20 14:32
如果只为找出素数,
内层循环至目标范围的一半,可省一半时间,
内层循环至目标范围数的平方根,可省更多 ...

在“平方根”的前提下除了2以外的数都检索奇数效率更高
Liki 发表于 2023-1-20 20:24
tiepeng 发表于 2023-1-20 14:32
如果只为找出素数,
内层循环至目标范围的一半,可省一半时间,
内层循环至目标范围数的平方根,可省更多 ...

看到这里想起电脑老师教我们的编程知识,也是这样讲的,找平方根。
Hacking2heart 发表于 2023-1-22 10:46
可以顺便练练算法。试试欧拉筛法,复杂度O(n)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-11 20:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表