Python3求m以内的素数、求m个数中最小的n个数
[本文出自天外归云的博客园]
题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, index def 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)
Python3求m以内的素数、求m个数中最小的n个数的更多相关文章
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- 【C语言】输入一个整数N,求N以内的素数之和
[C语言]输入一个整数N,求N以内的素数之和 /* ========================================================================== ...
- 斐波那契数列(递归)&求100以内的素数
Java 5 添加了 java.util.Scanner 类,这是一个用于扫描输入文本的新的实用程序.它是以 前的 StringTokenizer 和 Matcher 类之间的某种结合.由于任何数据都 ...
- 求一个数组中最小的K个数
方法1:先对数组进行排序,然后遍历前K个数,此时时间复杂度为O(nlgn); 方法2:维护一个容量为K的最大堆(<算法导论>第6章),然后从第K+1个元素开始遍历,和堆中的最大元素比较,如 ...
- 求给定数据中最小的K个数
public class MinHeap { /* * * Top K个问题,求给定数据中最小的K个数 * * 最小堆解决:堆顶元素为堆中最大元素 * * * */ private int MAX_D ...
- 求1e11以内的素数
有两种做法,一种是打表,另一种是直接求. 打表 将1e11每隔len(len=2000w)个数字统计一下该区间内素数的个数,比如cnt[1] 表示[1,len]以内有多少个素数,cnt[2]表示[le ...
- 记一次【求n以内的素数个数】的优化记录
最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ...
- 【题目】求n以内的素数个数
最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ...
- Python3练习题 026:求100以内的素数
p = [i for i in range(2,100)] #建立2-99的列表 for i in range(3,100): #1和2都不用判断,从3开始 for j in range(2, ...
随机推荐
- Ubuntu中root用户和user用户的相互切换[转载自93度的饼干]
Ubuntu中root用户和user用户的相互切换 Ubuntu是最近很流行的一款Linux系统,因为Ubuntu默认是不启动root用户,现在介绍如何进入root的方法. (1)从user用户切换到 ...
- java 实现唯一ID生成器
2014-11-08 内容存档在evernote,笔记名"java 实现唯一ID生成器"
- CMFCPropertyGridProperty用法
MFCPropertyGridCtrl 是VC 2008 pack中的控件类. CMFCPropertyGridProperty这个控件类中的属性值类类. 针对修改属性后,对属性值改变的消息处理: 方 ...
- ROS学习(六)—— 理解ROS节点
一.准备工作 下载一个轻量级的模拟器 sudo apt-get install ros-kinetic-ros-tutorials 二.图概念的理解 1.Nodes:一个节点就是一个可执行文件,用来与 ...
- magento 为用户注册增加一个字段(转)
步骤 I. 加一个occupation/title字段到用户注册页,差不多在register.html的54行,在email下方加一个Occupation显示代码 代码: <li>< ...
- HTTP 请求头 Header
HTTP 请求头 Header HTTP请求头概述 (HttpServletRequest) HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST或者HEA ...
- Swift 类型检查与类型转换
前言 在 Swift 语言中一般使用 is 关键字实现类型检查,使用 as 关键字实现类型转换,除此之外还可以通过构造器和方法来实现类型转换. 1.类型检查 1.1 使用 is 检查 类型检查操作符 ...
- Mac MySQL 数据库管理(关系型数据库管理系统)
1.管理准备工作 1)管理数据库准备工作 下载相关软件 mysql-workbench-community-6.3.10-macos-x86_64.dmg Oracle 官网 MySQL 官网 MyS ...
- App Icon Gear App 图标制作工具
1.App Icon Gear 简介 App Icon Gear(原名 AppIconMaker)不仅可以创建 App 图标.启动图 LaunchImage,还可以生成自定义尺寸的图标集(Image ...
- Swift2.0语言教程之函数嵌套调用形式
Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...