如何在 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:输出

在上述 example, 用户输入一个数字,我们检查输入的数字“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:输出

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