Python编写一个函数,打印200以内的所有素数
引言
素数(prime number),又称质数,是指大于1且只能被1和自身整除的正整数。素数在密码学、数论等领域有着重要的应用。在本文中,我们将使用Python编写一个函数,用于打印出200以内的所有素数。
素数的判断方法
要判断一个数是否为素数,有多种方法可以使用,如试除法、费马小定理、米勒-拉宾算法等。这些方法各有特点,适用于不同情况下的素数判断。而在本文中,我们将使用最简单的试除法来判断一个数是否为素数。
试除法的基本思想是,对于一个待判断的正整数n,我们通过将其除以小于n的所有正整数,看能否整除来判断它是否为素数。具体步骤如下:
- 对于待判断的数n,循环遍历2到n-1的所有正整数i。
- 如果n能够整除i,说明n不是素数,返回False。
- 如果n不能整除任何一个i,说明n是素数,返回True。
下面是使用Python编写的素数判断函数的示例代码:
def is_prime(n):
if n < 2:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
打印200以内的所有素数
有了判断素数的函数之后,我们就可以使用循环来遍历200以内的所有正整数,并调用判断函数来判断它们是否为素数。如果是素数,则打印出来。
下面是使用Python编写的打印200以内的所有素数的函数的示例代码:
def print_prime():
for n in range(2, 201):
if is_prime(n):
print(n, end=' ')
在这段代码中,我们循环遍历2到200的所有正整数,并调用判断函数is_prime()来判断它们是否为素数。如果是素数,则使用print()函数打印出来,并添加了end=' '参数,使输出结果以空格分隔。
测试函数
为了验证我们编写的函数是否正确,我们可以添加一个测试函数,用来验证判断函数和打印函数的输出结果是否符合预期。
下面是使用Python编写的测试函数的示例代码:
def test():
print("200以内的素数有:")
print_prime()
print()
print("测试结果是否正确:")
primes = [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, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
expected_output = ' '.join(str(x) for x in primes)
output = get_output(print_prime)
if output == expected_output:
print("测试通过!")
else:
print("测试未通过!")
在测试函数中,我们首先打印出200以内的素数,然后判断打印函数的输出结果是否和预期的输出结果一致。预期的输出结果是一个包含200以内的所有素数的列表,使用空格分隔。我们通过将这个列表转换成字符串,再和实际的输出结果进行对比,如果相同则测试通过,否则测试未通过。
流程图
下面是使用mermaid语法绘制的流程图,描述了判断素数和打印素数的流程:
flowchart TD
A[开始]
B[待判断的数n]
C[循环遍历2到n-1的所有正整数i]
D[n能够整除i]
E[n不能整除任何一个i]