利用python内置函数filter()求从0开始到某个数之间所有的质数:
理解:
题目大意就是,手动键盘输入一个数,求从0到该数之间的质数。
质数:一个数只有1和它本身2个因数的数叫做质数(俗称:素数)。
分析:
算法:
1,去掉1;
2,去掉除2之外所有2的倍数;
3,去掉除3,5,7之外所有3,5,7的倍数
4,剩下的就是质数
Code:
#!/usr/bin/env python x = raw_input(‘Please enter a number:‘) x = int(x) list1 = range(2,x+1) # 去掉0和1,因为1非质数,也非合数 list2 = [2,3,5,7] # 10以内的质数直接给出,很简单 def f2(y): if y%2 != 0 and y%3 != 0 and y%5 != 0 and y%7 != 0: return True list3 = filter(f2,list1) # 过滤出从11到该数之间的质数 print list2 + list3 # 加上10以内的质数,得到所有0~x之间的质数
时间: 2024-10-25 04:15:40