用python输出质数列表

答案:使用is_prime函数判断大于1且无其他因数的数,遍历范围内的每个数并收集质数。

输出质数列表可以用埃拉托斯特尼筛法或简单判断每个数是否为质数。下面是一个简洁实用的方法:遍历一定范围内的数字,对每个数判断是否只能被1和自身整除。

判断一个数是否为质数

质数是大于1且除了1和它本身外没有其他因数的自然数。可以写一个函数来判断:

def is_prime(n): if n

生成指定范围内的质数列表

使用上面的函数,结合列表推导式或循环,生成质数列表:

def get_primes(limit): return [n for n in range(2, limit + 1) if is_prime(n)]

示例:输出100以内的质数

primes = get_primes(100) print(primes)

使用筛法提高效率(适用于大范围)

如果要找较大范围内的质数,推荐使用埃氏筛法,效率更高:

def sieve_of_eratosthenes(limit): is_prime = [True] * (limit + 1) is_prime[0] = is_prime[1] = False # 0 和 1 不是质数 for i in range(2, int(limit ** 0.5) + 1): if is_prime[i]: for j in range(i * i, limit + 1, i): is_prime[j] = False return [i for i in range(2, limit + 1) if is_prime[i]]

示例

primes = sieve_of_eratosthenes(100) print(primes)

两种方法都能正确输出质数列表,小范围用第一种更直观,大范围推荐筛法。基本上就这些。