我正在尝试编写一个计算素数的程序,这是一个有效的程序。
我正在尝试一些不同的方法来解决这个问题。
def is_prime2(self, cand):
for number in range(2, int(round(self.get_sqrt(cand)))):
if cand % number == 0:
return False
return True
def is_prime(self, cand):
return all(cand % number != 0 for number in range(2, int(round(self.get_sqrt(cand)))))
is_prime2方法比is_prime方法快得多。
我试图了解这种差异的原因,有什么想法吗?
另外,有没有办法优化is_prime方法?