Python 判断素数


素数在许多信息技术应用中扮演着核心角色,例如密码学。因此,在各种应用中使用 Python 程序检查素数是必要的。素数是指除了 1 和自身之外没有其他因子的数。下面我们将看到可以找出给定数字是否为素数的程序。

方法

我们采用以下方法来判断一个数是否为素数。

  • 首先检查数字是否为正数。因为只有正数才能是素数。

  • 我们将数字除以从 2 到小于给定数字的数范围内的所有数字。

  • 如果在这个范围内任何数字的余数为零,则它不是素数。

示例

 在线演示

x = 23
if x > 1:
   for n in range(2, x):
      if (x % n) == 0:
         print(x, "is not prime")
         print(n, "times", x // n, "is", x)
         break
   else:
      print(x, "is a prime number")
   else:
      print(x, "is not prime number")

输出

运行上述代码得到以下结果:

23 is a prime number

检查 6i+1 的形式

所有大于 6 的素数都可以表示为 6i+1 的形式。这里 I 从 1 开始,依次递增为整数。在下面的例子中,我们将通过将其除以 6 并检查余数是否为 1 来检查该数字是否可以表示为 6i+1 的形式。相应地,我们将决定该数字是否为素数。我们还需要检查 i 值是否等于给定数字的平方根。

示例

 在线演示

def CheckPrime(n):
   # Check for cases of 2 and 3
   if (n <= 1):
      return False
   if (n <= 3):
      return True
   # skip checking middle five numbers in the loop
   if (n % 2 == 0 or n % 3 == 0):
      return False
   i = 5
   while (i * i <= n):
      if (n % i == 0 or n % (i + 2) == 0):
         return False
      i = i + 6
   return True
# Check for inputs
if (CheckPrime(31)):
   print(" true")
else:
   print(" false")
if (CheckPrime(25)):
   print(" true")
else:
   print(" false")

输出

运行上述代码得到以下结果:

true
false

更新于:2020年2月4日

714 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.