python验证哥德巴赫猜想时,输出两个素数的差最小

如图,怎样保证两个质数差最小
质数列表的长度是不定的,我无法确定从哪里开始检测才能找到两数距离最近的情况

img


import math


# 判断素数
def isprime(n):
    if n == 1:
        return False
    elif n == 2:
        return True
    else:
        for i in range(2, int(math.sqrt(n) + 1)):
            if n % i == 0:
                return False
        return True


# 从该数一半到1枚举,得到第一个数即为所需
def calculate(start, end, calculate_list):
    for i in range(start, end+2, 2):
        for j in range(int(i / 2), 0, -1):
            if isprime(j) == True and isprime(i - j) == True:
                calculate_list.append('{} = {} + {}'.format(i, j, i-j))
                break


def main():
    for i in range(9998, 109998, 10000):    # i为每个文件的终值
        calculate_list = []
        if i == 9998:
            start = 4   # 每个文件的起始值
            file_name = 1   # txt文件名称序号
        else:
            start = i - 9998
            file_name = int(start / 10000 + 1)
        calculate(start, i, calculate_list)
        # 写入文件
        with open('Goldbach{}.txt'.format('%02d' % file_name), 'w') as f:
            for j in calculate_list:
                f.write(j+'\n')


if __name__ == '__main__':
    main()

从给定数字的半数(即x/2)向后查找,找到的第一个素数z1即为差最小的两个素数中较大的那个
较小的那个为x-z1