if x <= 1:
return False
if x == 2:
return True
for i in range(2,x):
if x % i == 0:
return False
else:
return True
自己写的一个判断素数的小程序,但是不知道为什么会把 9 , 15 等这些数判为素数。。
1
zzy8200 2015-10-10 15:28:53 +08:00 via iPhone
去掉 else
|
2
saber000 2015-10-10 15:32:47 +08:00
姑且认为第一行的缩进被吞了,else 和下面的代码往左一个缩进
|
3
BraveRBT 2015-10-10 15:34:33 +08:00
注意缩进对其
另外应该是 Pythoner~? |
4
zzy8200 2015-10-10 15:38:24 +08:00 via iPhone
去掉 else:后把 return True 拿到最外面,你这个只会判断是否是偶数
|
5
BraveRBT 2015-10-10 16:34:48 +08:00
直接给楼主附上修改后的代码咯 :)
def is_prime(x): if x <= 1: return False if x == 2: return True for i in range(2,x): if x % i == 0: return False return True |
6
BraveRBT 2015-10-10 16:35:55 +08:00
不好意思
<pre> def test_prime(x): if x <= 1: return False if x == 2: return True for i in range(2,x): if x % i == 0: return False return True </pre> |
7
BraveRBT 2015-10-10 16:37:49 +08:00
没搞懂 V2EX 的回复格式,哪位指导一下
Thanks |
10
twor2 2015-10-10 16:50:50 +08:00
|
11
billgreen1 2015-10-10 16:59:37 +08:00 via iPhone
看看各种筛法吧
|
12
Arnie97 2015-10-10 17:09:09 +08:00
新手大概不知道 list comprehension ?
(x > 1) and all(x % i for i in range(2, x)) |
15
theohateonion OP 谢谢各位啦。我找到问题了~
|