质数练习_第二次优化|学习笔记

简介: 快速学习 质数练习_第二次优化

开发者学堂课程【Python 语言基础 1 :语法入门: 质数练习_第二次优化】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/599/detail/8696


质数练习_第二次优化


内容简介:

1、对性能进行进一步优化思路(把j的范围缩小)

2、优化演示

 

一、优化思路

10000 个数 第一次优化后执行时间 1.577 秒

100000 个数 第一次优化后执行时间 170.645 秒

进一步优化:把j的范围缩小即可以很大程度上提高运行速度

举例:36 的因数:(2  18) (3  32) (4  9) (6  6)

数到 6 为止,往后没有对应的因数,则想要找36的因数,不需要从1找到36,只需找到一个固定位置如 36 的根号 6 即可。

 

二、优化演示

故 将 j < i 改为 j < i ** 0.5

操作演示为begin = time()

i = 2

while i <= 100000:

flag = True

j = 2

(这一步对于性能优化十分重要while j <= i ** 0.5

if  i % j == 0

flag = False

break

j += 1

if flag :

print(i)

i += 1

end = time()

第二次优化后 10000 个数执行时间变为 0.068 秒

100000 个数执行时间为 1.646 秒

相关文章
求质数的几种方式
求质数的几种方式
|
3月前
|
C语言
【Amazon 面试题1】一个数组,里面得数出现的次数是偶数次,只有一个数出现的次数是奇数次,找出那个出现奇数次的数
本文介绍了解决Amazon面试题的一种方法,即在一个所有数字出现次数都是偶数,除了一个数字出现奇数次的数组中,利用异或运算的性质找出出现奇数次的数字,并提供了C语言实现的代码示例。
67 1
|
6月前
|
算法 测试技术 C++
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
【数论】【分类讨论】【C++算法】1611使整数变为 0 的最少操作次数
|
算法 前端开发
前端算法-寻找重复数
前端算法-寻找重复数
|
算法 前端开发 索引
前端算法-质数计数
前端算法-质数计数
|
机器学习/深度学习 算法
蓝桥杯之素数及相关判断方法(看这一篇就够了)
蓝桥杯之素数及相关判断方法(看这一篇就够了)
158 0
质数练习_第二次优化
质数练习_第二次优化自制脑图
54 0
质数练习_第二次优化
质数练习_第一次优化
质数练习_第一次优化自制脑图 性能优化方法:基本方法,在 IDLE 中演示,使用 break 进一步优化
61 0
质数练习_第一次优化
|
开发者 Python
使用假设成立法求质数 | 学习笔记
快速学习 使用假设成立法求质数
|
开发者 Python
使用计数方法求质数 | 学习笔记
快速学习 使用计数方法求质数