我知道2是素数,但是当运行此代码时,它与if语句条件puts s1.to_s + " " + s2.to_s
不匹配。但是if n % x == 0
所以它应该是平等的:
2 % 2 == 0
答案 0 :(得分:6)
来自range()
对于肯定的步骤,范围
r
的内容由公式r[i] = start + step*i
确定,其中i >= 0
和r[i] < stop
。如果
r[0]
不符合值约束,则范围对象将为空。
因此,当n = 2
时,range(2, n)
为空范围,因为r[0]
为2
并且不符合约束2 < 2
。因此,for
循环永远不会运行,因此它永远不会中断,因此执行else:
块并报告它是否为素数。