python 编写函数,输出1~100以内的所有素数
时间: 2024-05-16 21:15:19 浏览: 144
可以使用以下代码实现:
def prime_numbers():
primes = [] # 用来存储素数的列表
for num in range(2, 101):
for i in range(2, num):
if num % i == 0:
break # 如果能被整除就不是素数,跳出循环
else:
primes.append(num) # 如果循环正常结束,说明是素数,添加到素数列表
return primes
print(prime_numbers())
这个函数中,我们首先定义了一个空列表 primes
用来存储素数。接着使用了两个嵌套的 for
循环,外层循环遍历2到100之间的所有数字,内层循环用来判断该数字是否为素数。如果该数字能被2到该数字-1之间的任意一个数整除,则该数字不是素数,跳出内层循环;如果内层循环正常结束,说明该数字是素数,将其添加到素数列表中。最后返回素数列表。
使用 print(prime_numbers())
来输出1~100之间的所有素数。
相关问题
python编写函数,输出1~100以内的所有素数。
Python中可以编写一个函数来找出1到100之间的所有素数。素数是指只有1和它本身两个正因数的大于1的自然数。下面是一个简单的实现方法:
def is_prime(n):
"""判断一个数是否为素数"""
if n <= 1:
return False
elif n == 2:
return True
elif n % 2 == 0:
return False
else:
i = 3
while i * i <= n:
if n % i == 0:
return False
i += 2
return True
def find_primes(start=1, end=100):
"""找到给定范围内的所有素数"""
primes = []
for num in range(start, end + 1):
if is_prime(num):
primes.append(num)
return primes
# 输出1到100之间的所有素数
print(find_primes())
这个find_primes
函数会返回一个列表,包含从1到100的所有素数。is_prime
函数用于检查单个数字是否为素数。
编写函数,输出1~100以内所有素数
编写一个函数来找出1到100之间的所有素数,可以采用“埃拉托斯特尼筛法”(Sieve of Eratosthenes)。以下是用Python实现的一个例子:
def find_primes(n):
primes = [True] * (n + 1) # 初始化所有数字为质数
primes[0], primes[1] = False, False # 0和1不是质数
# 从2开始,将它的倍数标记为非质数
for i in range(2, int(n**0.5) + 1):
if primes[i]:
for j in range(i*i, n+1, i): # 只需检查i的倍数,因为大于i的数已无需再检查
primes[j] = False
# 输出所有的质数
prime_numbers = [i for i, is_prime in enumerate(primes) if is_prime]
return prime_numbers
# 示例使用
prime_list = find_primes(100)
print("Prime numbers between 1 and 100:", prime_list)
这个函数的主要思想是从2开始,逐个标记其倍数为非质数,直到平方根。由于任何大于该数的因子都会有一个小于或等于它本身的因数已经被标记,所以这种方法足够高效。
相关推荐














