如何在 Python 中检查一个数字是否为素数

素数是一个不能被除一个以外的任何其他数字整除的数字,因此在本文中,我们将教您多种方法如何在 python 中检查该数字是否为素数。

  1. 通过用户定义的功能
  2. 通过使用标志变量
  3. 通过使用 while 循环

1. 按用户定义函数

在python中,我们可以使用def关键字定义一个函数,这是一个很好的选择来定义一个函数来确定数字是否是素数,因为定义函数增加了代码的可用性

def checkprime(x):  if x > 1:  for y in range(2, int(x/2) + 1):  if (x % y) == 0:  print(x, "is not a prime number")  break  else:  print(x, "is a prime number")  else:  print(x, "is not a prime number")  a= int(input("Enter a number = "))  checkprime(a)

图 1:使用嵌套 if else

输出:

图 2:输出

在图 1 中,首先我们声明了一个函数 checkprime(a),它接受一个数字作为参数并检查给定的数字是否大于一。 如果数字大于 1,将执行 for 循环以检查 ‘x’ 是否可以被 ‘y’ 整除,则 ‘x’ 不是素数,否则,’x’ 是素数。 如果数字不大于 1,它将直接进入 else 部分并打印 ‘x’ is not a prime number,如图 2 所示。

2.通过使用标志变量

在 Python 中,我们可以通过使用标志变量来验证数字是否为素数。 标志变量可以有两个值:真或假。

x= int(input("Enter a number = "))  flag = False  if x > 1:  for y in range(2, x):  if (x % y) == 0:  flag = True  break  if flag:  print(x, "is not a prime number")  else:  print(x, "is a prime number")

文本描述自动生成

图 3:使用标志变量

输出:

文本描述自动生成

图 4:输出

在上面的例子中,用户输入了一个数字,我们检查输入的数字“x”是否大于一,所以我们只在“x”大于一时继续。 如果 ‘x’ 可以被 (2, x) 范围内的任何数字整除,则将 flag 设置为 True 并在找到该范围内的因子时退出循环,表明该整数不是素数,如图 2 所示。否则,标志的值将保持为 False,表示该数是素数。

3.通过使用while循环

可以使用 while 循环检查素数。

x= int(input("Enter a number greater than 1= "))  f=0  y=2  while y <= x / 2:  if (x % y) == 0:  f = 1  break  y+=1  if f:  print(x, "is not a prime number")  else:  print(x, "is a prime number")  文本描述自动生成

图 5:使用 while 循环

输出:

文本描述自动生成

图 6:输出

在上面的例子中,用户被要求输入一个大于 1 的数字“x”。while 循环条件被检查,如果它是真的,那么它将被执行。 首先,将计算余数以查看“x”是否可以被除自身以外的任何其他数字完全整除。 如果“x”是完全可分的,那么变量“f”的值将被更新,否则它不会被更新。