代码如下:
primes = []
for num in range(2, 101):
prime = True
for prime_num in primes:
if num % prime_num == 0:
prime = False
break
if prime:
primes.append(num)
print(num)
这段 Python 代码的主要功能是找出 2 到 100 之间的所有素数(质数),并将这些素数存储在列表primes
中,同时将每个素数打印输出。下面我们逐行来详细解释这段代码:
1.
primes = []
这行代码创建了一个空列表
primes
,用于存储后续找到的素数。2.
for num in range(2, 101):
这是一个外层
for
循环,range(2, 101)
会生成一个从 2 到 100(包括 2 但不包括 101)的整数序列。num
会依次取这个序列中的每个值,即从 2 开始,每次递增 1,直到 99。3.
prime = True
在每次外层循环开始时,将布尔变量
prime
初始化为True
。这个变量用于标记当前的num
是否为素数,初始假设它是素数。4.
for prime_num in primes:
这是一个内层
for
循环,用于遍历已经找到的素数列表primes
。当外层循环第一次执行时,primes
列表为空,内层循环不会执行。随着外层循环的进行,primes
列表会不断添加新的素数,内层循环会依次检查当前的num
是否能被已找到的素数整除。5.
if num % prime_num == 0:
在内层循环中,使用取模运算符
%
来检查num
是否能被当前的素数prime_num
整除。如果num
能被prime_num
整除(即num % prime_num
的结果为 0),说明num
不是素数。6.
prime = False
如果
num
能被某个已找到的素数整除,将prime
变量设置为False
,表示num
不是素数。7.
break
一旦发现
num
能被某个已找到的素数整除,使用break
语句跳出内层循环,因为只要找到一个能整除num
的数,就可以确定num
不是素数,不需要再继续检查其他素数。8.
if prime:
当内层循环结束后,检查
prime
变量的值。如果prime
仍然为True
,说明num
不能被已找到的任何素数整除,即num
是素数。9.
primes.append(num)
如果
num
是素数,将其添加到primes
列表中。10.
print(num)
同时,将这个素数打印输出。
这段代码通过两层循环,利用已经找到的素数来判断后续的数是否为素数,避免了对每个数进行从 2 到其平方根的全部检查,提高了效率。最终,
primes
列表中存储了 2 到 100 之间的所有素数,并且每个素数都会被打印出来。
觉得有帮助就给博主点个关注叭~~
有问题的可以私信或者在评论区一起交流
友友们一起加油叭QAQ