Project Euler その3

Problem 7

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10 001st prime number?

最初の6つの素数をリストアップすると、2,3,5,7,11と13がある。6番目の素数に13を見ることができる。10001番目の素数は何か?

コード
i = 3
prime = [2]
flag = 0

while(1):
    for j in prime:
        if i%j == 0: flag = 1
    if flag == 0:
        prime.append(i)
    flag = 0
    i+=1

    if len(prime) == 10001: break

print prime[10000]

一応答えは出るけどかなり遅い。