如何求一个数的素数?花了几个小时试图弄清楚为什么if和else同时执行



''#我想打印num的素数#对于最后两个输出,else语句是否运行并在此处中断。如果条件已满
#如果我在此处中断,它如何继续到其他">

num=147
v=0
val=0
for i in range(2,num):

if num%i==0:
for x in range(2,i):
if i%x==0 :
print(i)
print(x)
print(i/x)
break    
else:
v = i
else:
continue

print('primefacs ',v) 

Python 3.8.1(默认,2020年2月2日08:37:37(

primefacs  3
primefacs  7
21
3
7.0
primefacs  21
49
7
7.0
primefacs  49

else子句应该与for-循环关联,而不是与内部循环部分中的if-语句关联。

num = 147
v = 0
for i in range(2, num):
if num % i == 0:
for x in range(2, i):
if i % x == 0:
print(i)
print(x)
print(i / x)
break
# comes here if we didn't hit the `break` above
else:
v = i
else:
continue
print('primefacs ', v)

输出:

primefacs  3
primefacs  7
21
3
7.0
primefacs  7
49
7
7.0
primefacs  7

最新更新