引言
在前面的课程中,我们已经学习了 Python 的基本输入输出、数据类型及其转换、顺序结构、分支结构、循环结构、循环控制语句、字符串类型、列表类型、元组类型、字典类型、集合类型、函数的定义与使用、函数调用与作用域以及函数的高级应用。本课时将介绍 Python 中的数学概念,包括质数的概念与判断、倍数与余数,并通过一个具体的示例来展示如何判断一个数是否为质数。
质数的概念与判断
质数(Prime Number)是指大于1的自然数中,除了1和它本身以外不再有其他因数的数。例如,2、3、5、7、11等都是质数。
判断一个数是否为质数:
-
基本思路:
- 如果一个数
n
是质数,那么它不能被2到sqrt(n)
之间的任何一个数整除。 - 因此,我们可以从2开始,检查到
sqrt(n)
为止,如果n
能被任何一个数整除,则n
不是质数。
- 如果一个数
-
优化:
- 如果
n
是偶数且不等于2,那么n
不是质数。 - 只需要检查奇数即可。
- 如果
判断一个数是否为质数
import math
def is_prime(n):
""" 判断一个数是否为质数。"""
if n <= 1:
return False
if n == 2:
return True
if n % 2 == 0:
return False
for i in range(3, int(math.sqrt(n)) + 1, 2):
if n % i == 0:
return False
return True
# 测试函数
numbers = [2, 3, 4, 5, 11, 15, 17, 19, 20, 23]
for number in numbers:
if is_prime(number):
print(f"{number} 是质数")
else:
print(f"{number} 不是质数")
示例解析
-
定义函数
is_prime
:- 该函数接收一个整数
n
,判断n
是否为质数。 - 如果
n
小于或等于1,返回False
。 - 如果
n
等于2,返回True
。 - 如果
n
是偶数且不等于2,返回False
。 - 使用
for
循环从3开始,检查到sqrt(n)
为止,步长为2(只检查奇数)。 - 如果
n
能被任何一个数整除,返回False
。 - 否则,返回
True
。
- 该函数接收一个整数
-
测试函数:
- 创建一个包含多个整数的列表
numbers
。 - 遍历列表中的每个数,调用
is_prime
函数判断是否为质数,并打印结果。
- 创建一个包含多个整数的列表
倍数与余数
倍数(Multiple)是指一个数能够被另一个数整除的结果。例如,12是3的倍数,因为12 ÷ 3 = 4,没有余数。
余数(Remainder)是指一个数除以另一个数后剩下的部分。例如,13除以5的余数是3,因为13 = 5 * 2 + 3。
计算倍数与余数
def is_multiple(a, b):
""" 判断 a 是否是 b 的倍数。"""
return a % b == 0
def get_remainder(a, b):
""" 计算 a 除以 b 的余数。"""
return a % b
# 测试函数
a = 13
b = 5
if is_multiple(a, b):
print(f"{a} 是 {b} 的倍数")
else:
print(f"{a} 不是 {b} 的倍数")
remainder = get_remainder(a, b)
print(f"{a} 除以 {b} 的余数是 {remainder}")
示例解析
-
定义函数
is_multiple
:- 该函数接收两个整数
a
和b
,判断a
是否是b
的倍数。 - 使用模运算符
%
检查a
除以b
的余数是否为0,如果是,返回True
,否则返回False
。
- 该函数接收两个整数
-
定义函数
get_remainder
:- 该函数接收两个整数
a
和b
,计算a
除以b
的余数。 - 使用模运算符
%
计算余数并返回。
- 该函数接收两个整数
-
测试函数:
- 定义两个整数
a
和b
。 - 调用
is_multiple
函数判断a
是否是b
的倍数,并打印结果。 - 调用
get_remainder
函数计算a
除以b
的余数,并打印结果。
- 定义两个整数
小结
通过本课时的学习,你已经掌握了 Python 中的质数概念与判断、倍数与余数,并通过具体的示例展示了如何使用这些数学概念来解决实际问题。理解这些数学概念对于编写涉及数学运算的程序非常重要。掌握这些基础知识将帮助你在编程中更加得心应手。