原文: https://www.programiz.com/python-programming/examples/prime-number

使用for循环和if...else语句检查整数是否为质数的示例。 如果该数字不是质数,则在输出中说明为什么它不是质数。

要理解此示例,您应该了解以下 Python 编程主题:


大于 1 的正整数,除 1 外没有其他因素,并且该数字本身称为质数。 2、3、5、7 等是质数,因为它们没有任何其他因素。 但是 6 不是质数(它是合成的),因为2 x 3 = 6

源代码

  1. # Program to check if a number is prime or not
  2. num = 407
  3. # To take input from the user
  4. #num = int(input("Enter a number: "))
  5. # prime numbers are greater than 1
  6. if num > 1:
  7. # check for factors
  8. for i in range(2,num):
  9. if (num % i) == 0:
  10. print(num,"is not a prime number")
  11. print(i,"times",num//i,"is",num)
  12. break
  13. else:
  14. print(num,"is a prime number")
  15. # if input number is less than
  16. # or equal to 1, it is not prime
  17. else:
  18. print(num,"is not a prime number")

输出

  1. 407 is not a prime number
  2. 11 times 37 is 407

在此程序中,将检查变量num是否为质数。 小于或等于 1 的数字不是质数。 因此,我们仅在num大于 1 时继续进行。

我们检查num是否可被 2 到num-1的任意数整除。如果发现该范围内的因数,则该数字不是质数。 否则,该数字为质数。

我们可以减少寻找因子的数字范围。

在以上程序中,我们的搜索范围是 2 至num - 1

我们可以使用range(2,num//2)range(2,math.floor(math.sqrt(num)))范围。 后一个范围是基于这样一个事实,即复合数字的系数必须小于该数字的平方根。 否则,该数字为质数。

您可以在上面的源代码中更改变量num的值,以检查其他整数是否为质数。