【发布时间】:2020-08-12 10:19:48
【问题描述】:
我需要检查给定的整数是否是素数,如果是则返回 True。如果没有,我需要找到大于 1 的最小因子。我对此完全陌生,即使代码编译它也失败了几个测试用例。
def isPrime(n):
if (n <= 1) :
return n
if (n <= 3) :
return 1
if (n % 2 == 0 or n % 3 == 0) :
return 2
i = 5
while(i * i <= n) :
if (n % i == 0 or n % (i + 2) == 0) :
return i
i = i + 6
return True
【问题讨论】:
-
从什么是素数的定义重新开始:一个只能被 1 和自身整除的数。你可以尝试实现Fermat's little theorem。