目录
数学:数论-质数 、合数
质数
也称为素数,是指大于1的自然数,除了1和自身以外没有其他正因数的数。换句话说,质数只能被1和它本身整除,不能被其他自然数整除。质数在数论和密码学等领域具有重要的应用,它们在因数分解和素性测试等算法中扮演着重要的角色。
在0到100的范围内,共有25个质数。以下是这些质数的列表:
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
合数
与质数对应的数被称为合数(composite numbers)。合数是大于1的自然数,除了1和自身以外还有其他正因数的数。
在100以内,以下是合数及其对应的平方根以及能够整除它们的数的列表:
合数: 4,平方根: 2,能被整除的数: 2
合数: 6,平方根: 2.449489742783178,能被整除的数: 2, 3
合数: 8,平方根: 2.8284271247461903,能被整除的数: 2
合数: 9,平方根: 3,能被整除的数: 3
合数: 10,平方根: 3.1622776601683795,能被整除的数: 2, 5
合数: 12,平方根: 3.4641016151377544,能被整除的数: 2, 3
合数: 14,平方根: 3.7416573867739413,能被整除的数: 2, 7
合数: 15,平方根: 3.872983346207417,能被整除的数: 3, 5
合数: 16,平方根: 4,能被整除的数: 2
合数: 18,平方根: 4.242640687119285,能被整除的数: 2, 3, 6, 9
合数: 20,平方根: 4.47213595499958,能被整除的数: 2, 4, 5, 10
合数: 21,平方根: 4.58257569495584,能被整除的数: 3, 7
合数: 22,平方根: 4.69041575982343,能被整除的数: 2, 11
合数: 24,平方根: 4.898979485566356,能被整除的数: 2, 3, 4, 6, 8, 12
合数: 25,平方根: 5,能被整除的数: 5
合数: 26,平方根: 5.0990195135927845,能被整除的数: 2, 13
合数: 27,平方根: 5.196152422706632,能被整除的数: 3, 9
合数: 28,平方根: 5.291502622129181,能被整除的数: 2, 4, 7, 14
合数: 30,平方根: 5.477225575051661,能被整除的数: 2, 3, 5, 6, 10, 15
合数: 32,平方根: 5.656854249492381,能被整除的数: 2, 4, 8, 16
合数: 33,平方根: 5.744562646538029,能被整除的数: 3, 11
合数: 34,平方根: 5.830951894845301,能被整除的数: 2, 17
合数: 35,平方根: 5.916079783099617,能被整除的数: 5, 7
合数: 36,平方根: 6,能被整除的数: 2, 3, 4, 6, 9, 12, 18
合数: 38,平方根: 6.164414002968976,能被整除的数: 2, 19
合数: 39,平方根: 6.244997998398398,能被整除的数: 3, 13
合数: 40,平方根: 6.324555320336759,能被整除的数: 2, 4, 5, 8, 10, 20
合数: 42,平方根: 6.48074069840786,能被整除的数: 2, 3, 6, 7, 14, 21
合数: 44,平方根: 6.6332495807108,能被整除的数: 2, 4, 11, 22
合数: 45,平方根: 6.708203932499369,能被整除的数: 3, 5, 9, 15
合数: 46,平方根: 6.782329983125268,能被整除的数: 2, 23
合数: 48,平方根: 6.928203230275509,能被整除的数: 2, 3, 4, 6, 8, 12, 16, 24
合数: 49,平方根: 7,能被整除的数: 7
合数: 50,平方根: 7.0710678118654755,能被整除的数: 2, 5, 10, 25
合数: 51,平方根: 7.14142842854285,能被整除的数: 3, 17
合数: 52,平方根: 7.211102550927978,能被整除的数: 2, 4, 13, 26
合数: 54,平方根: 7.3484692283495345,能被整除的数: 2, 3, 6, 9, 18, 27
合数: 55,平方根: 7.416198487095663,能被整除的数: 5, 11
合数: 56,平方根: 7.483314773547883,能被整除的数: 2, 4, 7, 8, 14, 28
合数: 57,平方根: 7.54983443527075,能被整除的数: 3, 19
合数: 58,平方根: 7.615773105863909,能被整除的数: 2, 29
合数: 60,平方根: 7.745966692414834,能被整除的数: 2, 3, 4, 5, 6, 10, 12, 15, 20, 30
合数: 62,平方根: 7.874007874011811,能被整除的数: 2, 31
合数: 63,平方根: 7.937253933193772,能被整除的数: 3, 7, 9, 21
合数: 64,平方根: 8,能被整除的数: 2, 4, 8, 16, 32
合数: 65,平方根: 8.06225774829855,能被整除的数: 5,
函数方法
以下是一个判断质数的函数方法的示例代码:
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
这个函数名为 `is_prime`,接受一个正整数 `n` 作为参数,并返回一个布尔值,表示该数是否为质数。函数首先判断如果 `n` 小于等于 1,则直接返回 `False`,因为质数定义是大于 1 的数。然后,函数使用一个循环从 2 开始到 `n` 的平方根(`int(n**0.5) + 1`)之间的每个数进行迭代。如果 `n` 能被任何一个数整除,则说明它不是质数,返回 `False`。如果循环结束后都没有找到可以整除的数,则说明 `n` 是质数,返回 `True`。
你可以调用这个函数,传入一个正整数,来判断该数是否为质数。例如:
number = int(input("请输入一个正整数:"))
if is_prime(number):
print(number, "是质数")
else:
print(number, "不是质数")
请注意,这个函数的时间复杂度是 O(sqrt(n)),其中 n 是输入的正整数。
总结:所有合数都能被2、3或5其中的一个数整除。
合数是指除了1和自身之外,还有其他因子的正整数。我们可以观察到,在所有合数中,至少有一个因子是2、3或5。因此,对于任意一个合数,我们可以将其除以2、3或5中的一个数,得到一个整数商。这就意味着所有合数都能被2、3或5其中的一个数整除。
函数调优
# 判断是否为质数
#方法一
def is_prime(n):
if n <= 1:
return False
for i in range(3):
# 如果n能被其他数整除则为合数
if n % [2, 3, 5][i] == 0:
return False
return True
#方法二
fun_prime_lambda = lambda x: all(x % [2, 3, 5][i] != 0 for i in range(3) and x > 1)