ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Python 程序:检查质数 > 原文: [https://www.programiz.com/python-programming/examples/prime-number](https://www.programiz.com/python-programming/examples/prime-number) #### 使用`for`循环和`if...else`语句检查整数是否为质数的示例。 如果该数字不是质数,则在输出中说明为什么它不是质数。 要理解此示例,您应该了解以下 [Python 编程](/python-programming "Python tutorial")主题: * [Python `if...else`语句](/python-programming/if-elif-else) * [Python `for`循环](/python-programming/for-loop) * [Python `break`和`continue`](/python-programming/break-continue) * * * 大于 1 的正整数,除 1 外没有其他因素,并且该数字本身称为质数。 2、3、5、7 等是质数,因为它们没有任何其他因素。 但是 6 不是质数(它是合成的),因为`2 x 3 = 6`。 ## 源代码 ```py # Program to check if a number is prime or not num = 407 # To take input from the user #num = int(input("Enter a number: ")) # prime numbers are greater than 1 if num > 1: # check for factors for i in range(2,num): if (num % i) == 0: print(num,"is not a prime number") print(i,"times",num//i,"is",num) break else: print(num,"is a prime number") # if input number is less than # or equal to 1, it is not prime else: print(num,"is not a prime number") ``` **输出** ```py 407 is not a prime number 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`的值,以检查其他整数是否为质数。