我有这段代码:
def isPrime(nr):
"""
Verify if a number is prime
nr - integer number, nr>1
return True if nr is prime, False otherwise
"""
div = 2 #search for divider starting from 2
while div<nr and nr % div>0:
div=div+1
#if the first divider is the number itself
#then the number is prime
return div>=nr
这不是我写的,所以我试图理解算法是如何工作的,显然它正在使用一种形式的鸿沟和分数。征服。
我不明白的是最后一行:
return div>=nr
答案 0 :(得分:3)
return div>=nr
......等同于......
if div >= nr:
return True
else:
return False
也就是说,它不是“返回比较”而是返回比较的结果。
答案 1 :(得分:0)
该算法只测试从2到nr
的每个数字,以测试nr
是否可以被数字整除。如果在任何时候(nr % div
等于0),则循环中断。如果div < nr
,这将返回False。如果循环到达nr
,那么我们知道2和nr
之间没有分隔nr
的数字,所以它是素数,返回True。另一个答案解释了返回的工作原理。
绝对不使用分频&amp;征服。
答案 2 :(得分:0)
Python带有一个交互式环境,您可以在其中试验您发布的简单脚本。
$ python # From the command line just run 'python'.
>>> nr = 13 # Type in some code.
>>> div = 2
>>> while div<nr and nr % div>0:
... div=div+1
... # Press 'Enter' here to end the indentation.
>>> div # Type a variable to see what it equals.
13
>>> nr # Again.
13
>>> div>=nr # Ahhh, the answer to your question.
True
>>>