练习题:109
目录
Python题目
题目
题目分析
需求理解
关键知识点
实现思路分析
代码实现
代码解释
导入模块:
定义函数:
处理特殊情况:
循环检查:
返回结果:
测试函数:
运行思路
结束语
Python题目
题目
定义一个函数,判断一个数是否为质数。
题目分析
需求理解
本题要求定义一个 Python 函数,用于判断给定的一个数是否为质数。质数是指在大于 1 的自然数中,除了 1 和它自身外,不能被其他自然数整除的数。
关键知识点
- 质数的定义:明确质数的判断标准,即一个数大于 1 且只能被 1 和它本身整除。
- 循环结构:使用循环来检查该数是否能被除 1 和它本身以外的其他数整除。
- 条件判断:通过条件判断来确定该数是否满足质数的定义。
实现思路分析
- 处理特殊情况:小于等于 1 的数不是质数,需要单独处理。
- 循环检查:从 2 开始到该数的平方根(取整)进行循环,检查该数是否能被其中任何一个数整除。如果能被整除,则不是质数;如果都不能被整除,则是质数。
代码实现
import math
def is_prime(num):
if num <= 1:
return False
# 只需要检查到平方根即可
for i in range(2, int(math.sqrt(num)) + 1):
if num % i == 0:
return False
return True
# 测试函数
test_num = 17
if is_prime(test_num):
print(f"{test_num} 是质数。")
else:
print(f"{test_num} 不是质数。")
代码解释
-
导入模块:
import math:导入math模块,用于使用sqrt函数计算平方根。
-
定义函数:
def is_prime(num)::定义一个名为is_prime的函数,接受一个整数参数num。
-
处理特殊情况:
if num <= 1::判断num是否小于等于 1,如果是,则直接返回False,因为小于等于 1 的数不是质数。
-
循环检查:
for i in range(2, int(math.sqrt(num)) + 1)::使用for循环从 2 开始到num的平方根(取整)进行迭代。这里只需要检查到平方根是因为如果一个数num有一个大于其平方根的因数,那么必然有一个小于其平方根的因数与之对应。if num % i == 0::在每次循环中,检查num是否能被i整除。如果能被整除,则返回False,表示num不是质数。
-
返回结果:
- 如果循环结束后都没有找到能整除
num的数,则返回True,表示num是质数。
- 如果循环结束后都没有找到能整除
-
测试函数:
test_num = 17:定义一个测试用的整数test_num。if is_prime(test_num)::调用is_prime函数判断test_num是否为质数,并根据结果输出相应的信息。
运行思路
- 导入模块:程序开始执行时,首先执行
import math语句,将math模块加载到当前的命名空间中,为后续使用sqrt函数做准备。 - 定义函数:定义
is_prime函数,Python 解释器将函数定义加载到内存中,但不执行函数体。 - 测试函数:执行
test_num = 17语句,定义测试用的整数。然后调用is_prime函数,将test_num作为参数传递给函数。 - 进入函数:程序进入
is_prime函数,首先判断num是否小于等于 1,由于num为 17,不满足条件,继续执行循环。 - 循环检查:从 2 开始到
int(math.sqrt(17)) + 1(即 4)进行循环,检查 17 是否能被 2、3、4 整除。由于都不能整除,循环结束。 - 返回结果:循环结束后,返回
True,表示 17 是质数。 - 输出结果:根据函数的返回值,输出相应的信息。
结束语
通过这个示例,你已经学会了如何定义一个函数来判断一个数是否为质数。质数判断是编程中常见的基础问题,掌握这个问题的解决方法有助于你理解循环结构和条件判断的使用。在后续的学习中,你可以进一步探索质数的相关算法和应用,不断提升自己的编程能力。
