在以下代码中,第5行有缩进错误。 我想要的是当第4行的条件为真然后中断 应该执行否则div = div + 2应该执行。
max_num=input()
for num in range(2,max_num+1):
for div in range(3,max_num/2):
if(num%div==0):break
div=div+2
else: print num
if(num==2): num=num+1
else : num=num+2
我是python的新手。请帮帮我.. :)
答案 0 :(得分:0)
请使用2或4个空格进行缩进。我看到你的缩进是不一致的 - 有一次你使用1个空格而其他你使用3个。
你所做的应该按照我的意愿工作,但它只是不一致。
这是一个稍微有点组织的版本:
max_num=input()
for num in range(2,max_num+1):
for div in range(3,max_num/2):
if(num%div==0): break
div=div+2
else:
print num
if(num==2):
num=num+1
else:
num=num+2
您还可以优化它以便更有效地工作:
# Makes sure only ints are allowed. Else throws an exception
max_num = int(raw_input())
for num in range(2, max_num + 1):
try:
(div for div in range(3, max_num / 2, 2) if num % div == 0).next()
except StopIteration:
print num
# This section is not used as I see
# if(num==2):
# num=num+1
# else:
# num=num+2
答案 1 :(得分:-1)
我建议添加此代码,但我想知道你的代码需要什么结果。
max_num=input()
for num in range(2,max_num+1):
for div in range(3,max_num/2):
if(num%div==0):break
else:div=div+2
print num
if(num==2): num=num+1
else : num=num+2