Python作业:如何从指定列表中筛选并打印所有质数?
如何从给定列表中筛选并打印质数?
嘿,这个需求其实很好实现,核心就两步:先搞懂怎么判断一个数是不是质数,再用这个判断逻辑去遍历你的列表,把符合条件的数挑出来打印就行。咱们一步步来拆解:
第一步:明确质数的定义
首先得拎清楚,质数是大于1的自然数,且只能被1和它自身整除。所以列表里的1直接就能排除,它不是质数。
第二步:写一个判断质数的辅助函数
咱们先写个小函数is_prime(n),用来单独判断某个数字是否为质数,这样后面遍历列表的时候直接调用就行:
def is_prime(n): # 小于等于1的数都不是质数 if n <= 1: return False # 2是唯一的偶质数,直接返回True if n == 2: return True # 除了2之外的偶数都不是质数 if n % 2 == 0: return False # 从3开始只检查奇数,到n的平方根就够了(优化判断效率) max_divisor = int(n**0.5) + 1 for d in range(3, max_divisor, 2): if n % d == 0: return False return True
第三步:遍历列表筛选并打印质数
有了判断函数,接下来就可以遍历你的Numbers列表,把质数挑出来打印了:
Numbers = [1,3,4,5,15,48,73] # 用列表推导式筛选出所有质数 prime_numbers = [num for num in Numbers if is_prime(num)] # 打印结果 print("列表中的质数是:", prime_numbers)
运行结果
执行上面的代码后,你会得到输出:
列表中的质数是: [3, 5, 73]
如果你想逐个打印每个质数,也可以改成循环直接输出:
for num in Numbers: if is_prime(num): print(num)
这样就会依次输出3、5、73啦。
内容的提问来源于stack exchange,提问作者Victor Dimitrov
相关产品推荐
相关产品推荐

