Python编写一个函数,打印200以内的所有素数

引言

素数(prime number),又称质数,是指大于1且只能被1和自身整除的正整数。素数在密码学、数论等领域有着重要的应用。在本文中,我们将使用Python编写一个函数,用于打印出200以内的所有素数。

素数的判断方法

要判断一个数是否为素数,有多种方法可以使用,如试除法、费马小定理、米勒-拉宾算法等。这些方法各有特点,适用于不同情况下的素数判断。而在本文中,我们将使用最简单的试除法来判断一个数是否为素数。

试除法的基本思想是,对于一个待判断的正整数n,我们通过将其除以小于n的所有正整数,看能否整除来判断它是否为素数。具体步骤如下:

  1. 对于待判断的数n,循环遍历2到n-1的所有正整数i。
  2. 如果n能够整除i,说明n不是素数,返回False。
  3. 如果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]