python使用列表实现筛选法求素数


使用列表实现筛选法求素数

实验目的

  • 了解素数的定义
  • 理解筛选法求解素数的原理
  • 理解切片操作
  • 熟练运行内置函数enumerate()
  • 熟练运用内置函数filter()
  • 理解序列解包的工作原理
  • 熟悉选择结构和循环结构

实验内容

  • 编写程序,输入一个大于2的自然数,然后输出小于该数字的所有素数组成列表。
import math
'''首先是进行素数判断,使用的筛选法构造函数isPrime'''
def isPrime(n):
    m = math.ceil(math.sqrt(n)+1)
    for i in range(2, m):
        if n%i == 0 and i<n:
            return False
            break
    else:
        return True

n = input("请输入一个大于2的自然数:")
n = int(n)
'''由于0,1不是素数但能通过isPrime()函数测试 故而将范围设置为range(2, n + 1 )以求实现[2, n]取值'''
list(filter(isPrime, [i for i in range(2, n+1)]))
请输入一个大于2的自然数:50
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM