博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3求m以内的素数、求m个数中最小的n个数
阅读量:5900 次
发布时间:2019-06-19

本文共 1180 字,大约阅读时间需要 3 分钟。

[本文出自天外归云的博客园]

题1:求m以内的素数(m>2)

def find_all_primes_in(m):    def prime(num):        for i in range(2, num):            if divmod(num, i)[1] == 0:                return False        return True    print([i for i in range(2, m + 1) if prime(i)])if __name__ == '__main__':    find_all_primes_in(100)

我还有一种效率不是最高,但是写法最短的一行版求2到100以内的素数的写法:

print(list(filter(lambda num: False not in set([False if divmod(num, i)[1] == 0 else True for i in range(2, num)]), [i for i in range(2, 101)])))

这种方法的优点是只有一行,缺点是判断素数的方法不好,把之前所有的数都遍历了一遍并判断是否能够整除,最后才得出是否是素数的结论。正确的方法是遍历之前的数,如果出现了能整除的直接就返回False不再继续判断。 

 

题2:求m个数中最小的n个数(m>n)

def get_max(data):    max, index = data[0], 0    for i in range(1, len(data)):        if data[i] > max:            max, index = data[i], i    return max, indexdef get_min(data, n, min=[]):    for dt in data:        if len(min) < n:            min.append(dt)        else:            max, index = get_max(min)            if dt < max:                min[index] = dt    print(sorted(min))if __name__ == '__main__':    data = [2, 55, 41, 2, 56, 89, 85, 45, 15, 3, 6, 4, 89, 75, 21, 10, 20, 31, 226, 10, 225, 456, 895, 42, 14, 547, 61,            45, 95, 84, 81]    get_min(data, 5)

 

转载地址:http://oohsx.baihongyu.com/

你可能感兴趣的文章
Android 开发中使用 SQLite 数据库
查看>>
Android后门GhostCtrl,完美控制设备任意权限并窃取用户数据
查看>>
IBM郭继军:机器学习配合行业经验将帮助企业成就未来
查看>>
Rambus9000万美元收购Inphi存储器互联业务
查看>>
泉州电信推进渠道互联网化转型
查看>>
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.6节识别操作系统...
查看>>
linux系统防火墙iptables命令规则及配置的示例
查看>>
10 个顶尖的 Linux 开源人工智能工具
查看>>
Firefox 跟踪保护技术将页面加载时间减少 44%
查看>>
聚合(根)、实体、值对象精炼思考总结
查看>>
Aop RealProxy 千年遇BUG
查看>>
java解析虾米音乐
查看>>
rails将类常量重构到数据库对应的表中之三
查看>>
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
查看>>
mysql 多行合并函数
查看>>
【案例】RAID卡写策略改变引发的问题
查看>>
[Django学习]如何得到一个App
查看>>
第四十八讲:tapestry 与 淘宝kissy editor编辑器带图片上传
查看>>
Linux/Centos 重置Mysql root用户密码
查看>>
[C语言]unicode与utf-8编码转换(一)
查看>>