答复:python中解决孪生素数?

题目:3、 利用上题中判断素数的函数,编写程序找出1~100之间的所有孪生素数(若两个素数之差为2,则这两个素数就是一对孪生素数)。例如:3和5、5和7、11和13等都是孪生素数。
以下是我自己写的代码:
def isprime(n):
import math
a=int(math.sqrt(n))+1
for i in range(2,a):
if n%i==0:
flag=False
return flag
def main():
flag=True
for n in range(1,101):
primelist=[]
if flag:
primelist.append(n)
for b in range(0,len(primelist)):
if primelist[b+1]-primelist[b]==2:
print(primelist[b+1],primelist[b])
main()
运行后,提示我:list index out of range
我不会改,求教

代码没有缩进,没办法看
参考
https://blog.csdn.net/ICERON/article/details/84996617

将for b in range(0,len(primelist)):改成for b in range(0,len(primelist)-1):

import math
def isprime(n):

    for i in range(2, int(math.sqrt(n))+1):
        if n % i == 0:
            return False
    return True
def main(): 
    primelist = []
    for n in range(1,101):       
        if isprime(n):
            primelist.append(n)
    #print(primelist)
    for j in range(0, len(primelist)-1):
        if primelist[j+1]-primelist[j] == 2:
            print(primelist[j+1], primelist[j])
main()