Python求2~100之间的素数的思路

在学习Python的过程当中看见了一个“求2~100之间的素数”的题目,答案代码如下,我不是很理解这个题目的思路是什么。

i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print(i, " 是素数")
i = i + 1

运行结果及报错内容

2 是素数
3 是素数
5 是素数
7 是素数
11 是素数
13 是素数
17 是素数
19 是素数
23 是素数
29 是素数
31 是素数
37 是素数
41 是素数
43 是素数
47 是素数
53 是素数
59 是素数
61 是素数
67 是素数
71 是素数
73 是素数
79 是素数
83 是素数
89 是素数
97 是素数

我想要达到的结果

想知道这个每个语句的思路是怎么样的

改进版,速度更快

def prime(n):
    a,b = [2],1
    while a[-1]<n:
        b+=2
        for i in a:
            if b%i==0:
                break
            elif i*i>b:
                a.append(b)
                break
    return a[:-1]

print(prime(100))