题目: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()