计算两个非负整数之间所有的素数的和: 请输入第一个非负整数: 2 请输入第二个非负整数: 14 2+3+5+7+11+13=41

改怎么做这个计算两个非负整数之间所有的素数的和: 请输入第一个非负整数: 2 请输入第二个非负整数: 14 2+3+5+7+11+13=41

根据你的思路给出一版答案如下:
PS:也可以参考其他人的答案哦,了解一下别人的思路有助于自己进步

def isprime(a):
    if a<2:
        return False
    elif a == 2:
        return True
    elif a % 2 == 0:
        return False
    else:
        for i in range(3, int(a**0.5)+1):
            if a % i == 0:
                return False
    return True

def addprime(a, b):
    c = []
    for i in range(a, b+1):
        if isprime(i):
            c.append(i)
    return c

print('本程序将计算两个非负整数之间所有素数的和')
while True:
    a = int(input('请输入第一个非负整数:'))
    b = int(input('请输入第二个非负整数:'))
    if 0<a<1000000 and 0<b<100000 and a<=b:
        break
    print('输入错误')
s = addprime(a, b)
c = [str(i) for i in s]
print(' + '.join(c),'={}'.format(sum(s)))

a=int(input('请输入第一个非负素数:'))
b=int(input('请输入第二个非负素数:'))
if a>b:
    a=a+b
    b=a-b
    a=a-b

def isPrime(x):
    if x<2:
        return False
    for i in range(2,int(x**0.5)+1):
        if x%i==0:
            return False
    return True

s=0
for i in range(a,b+1):
    if isPrime(i):
        s+=i

print(s)

def isPrime(n):#求素数函数
    if n <= 1:
        return 0
    if n == 2:
        return n
    if n % 2 == 0:
        return 0
    i = 3
    while i * i <= n:
        if n % i == 0:
            return 0
        i += 2
    return n

while(True):
    #分别输入两个数
    n1 = int(input("请输入第一个非负整数:\n"))
    n2 = int(input("请输入第二个非负整数:\n"))
    list1 = []
    #判断是否为非负整数
    if(n1 >= 0 and n2 >= 0):
        for i in range(n1,n2):
            n3 = isPrime(i)
            if(n3 == 0):
                continue
            else:
                list1.append(n3)#求是否为素数
        print(sum(list1))
        break
    else:
        #不是提示重新输入
        print("请输入一个非负整数!")