想求出前n个非对称素数,求教这个代码问题出在哪

def prime(n):
    lis=[]
    num=11
    while len(lis) != n :
        num +=1
        for i in range(2,num) :
            if num % i == 0 :
                break
            else :
                
                for i in range(len(str(num))//2) :
                    if str(num)[i] != str(num)[-1-i] :
                        break
                    else:
                        lis.append(num)
    for j in lis :
        print(j, end = " ")


n = int(input())
prime(n)

为啥这个输入10出来结果是 33 55 55 55 77 77 77 77 77 99啊

一个问题是求素数的地方,if num%i ==0:break,另一个是判断是否对称的代码.问题都在于判断不完全.