有没有大哥帮我这个滞涨看看这个bug,晕了

这是我写的代码,题目链接在下面

number,text=eval(input()),input().split()
lis=[]
for p in text:
    p=int(p)
    print(p)
    num=p
    a=1
    while p>1:
        if p%2==0:
           p/=2
           p=int(p)
           print(p)
           if str(p) in text:
                a=0
                break
        if p%2!=0:
           p=(3*p+1)/2
           p=int(p)
           print(p)
           if str(p) in text:
                a=0
                break
    if a==1:
          lis+=str(num)
lis=sorted(lis,key=lambda x:int(x),reverse=True)
print(' '.join(lis))

我在运行的时候输入了一个'1 3'的例子,然后p一直在循环,不跳出我也不知道为啥...

 

23行的if缩进,这个if分支应该属于while内部,现在是平级的。