关于一个python的问题

1、编写程序,显示在101-200之间且个位数为7或者9的所有素数。循环必须用while语句实现。
2、编写程序,显示规范的三角形的九九乘法表。循环必须用for语句实现。

第一个:

i = 100
while 100 <= i <= 200:
    for j in range(2,i-1):
        if i % j==0:
            break
    else:
        if str(i)[-1] in ['7', '9']:
            print(i)
    i += 1

第二个:

for i in range (1,10):

    for j in range (1,i+1):

        print("{}*{} = {:<4}".format(i,j,i*j),end = " ")

    print("")


第一题

n = 2
p = set(range(101,201))
while n<101:
    p -= set(range(n,201,n))
    n += 1
p = list(p)
while p:
    a = p.pop(0)
    if a%10 in [7,9]:
        print(a)

第二题

for i in range (1,10):
    f = []
    for j in range (1,i+1):
        f.append(f"{j}*{i}={i*j}")
    print(*f)