2024-04-24 19:08:01 发布
网友
def is_prime(x): x = abs(x) if x == 0 or x == 1: return False elif x == 2: return True for i in range(2, x): if x%i == 0: return False return True
测试人员说,对于x=-7,上面的代码不应该返回true。 请帮忙。 谢谢:)
**编辑:**
我很抱歉,只是读了一些地方,任何数字小于2(即0,1和所有负数不是素数)
对我来说,负数是真的。你知道吗
您还可以运行从2到x/2的循环,并降低复杂性。你知道吗
对我来说确实如此。在你调用abs(x)之后检查x的值,也许会有帮助。你知道吗
我的Python不太好,但是这样的东西应该会更好:
def is_prime(x): # Handle 1, 0 and negatives. if x < 2: return False # Handle even numbers. elif x % 2 == 0: return x == 2 # Test with odd divisors. for i in range(3, sqrt(x), 2): if x % i == 0: return False return True
sqrt(x)限制节省了大量时间,单独处理偶数可以将混合输入的时间减半。你知道吗
sqrt(x)
对我来说,负数是真的。你知道吗
您还可以运行从2到x/2的循环,并降低复杂性。你知道吗
对我来说确实如此。在你调用abs(x)之后检查x的值,也许会有帮助。你知道吗
我的Python不太好,但是这样的东西应该会更好:
sqrt(x)
限制节省了大量时间,单独处理偶数可以将混合输入的时间减半。你知道吗相关问题 更多 >
编程相关推荐