【问题标题】:Could someone please explain the code for me?有人可以为我解释一下代码吗?
【发布时间】:2014-02-12 19:24:32
【问题描述】:

定义 bhl(x): 如果 x == 1: 返回假 elif x == 2: 返回真 elif x % 2 == 0: 返回假 对于范围内的 b (3,int(x**0.5 +1)): 如果 x % b == 0: 返回假 别的: 返回真

不知道我是不是太累了,但我真的想不通这部分代码是做什么的。谁能帮我解释一下:

elif x % 2 == 0:
    return False
for b in range(3,int(x**0.5 +1)):
    if x % b == 0:
        return False
else:
    return True

【问题讨论】:

  • 如果 x 可以被 2 整除,则返回 false,如果 x 可以被 b 整除,则下一行返回 false;

标签: if-statement for-loop module boolean


【解决方案1】:

检查 x 是否为素数

x % 2 == 0 检查 x 是否为偶数,换句话说,当你将它除以 2 时它没有余数

for b in range(3,int(x**0.5 +1)): if x % b == 0: return False

这会检查从 3 到 x/2+1 是否有一个数除以 x 而没有余数。 以前的情况检查了 1 和 2,没有必要检查大于 x/2 的数是否将 x 整除而没有余数,因为没有余数。

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2019-02-01
    • 1970-01-01
    • 2020-06-03
    • 2012-04-09
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    相关资源
    最近更新 更多