题目:
求大家解释一下为什么运行结果会是以下图片,应是函数的调用出现了问题吗?如何修改?
楼主判断素数的函数不对。
另外,题目要求是输出两个数之间素数的平方和。
def isprime(X):
count = 0
for n in range(2, X):
if X % n == 0:
count += 1
break
if count == 0:
return True
return False
a = eval(input("input a:"))
b = eval(input("input b:"))
nsum = 0
for i in range(a , b + 1):
if isprime(i) == True:
nsum += i * i
print (nsum)
"""prime judgement"""
for j in range(2, x):
if x % j == 0:
return False
return True
a = eval(input("请输入第一个数的值:"))
b = eval(input("请输入第二个数的值:"))
for i in range(a, b):
if isprime(i):
print(i, i*i)
因为你素数判断那里有问题,不满足素数循环,所以不会打印
1.你沒計算結果, 2.你的range()函數第二个參數應+1
按你的思路試了一下, 可以的
def ispri(x):
for i in range(2, x//2+1):
if x%i==0:
return False
elif i==x//2:
return True
a = int(input('輸入下限:'))
b = int(input('輸入上限:'))
exp = ''
for i in range(a, b+1):
if ispri(i):
exp += f'{i}*{i}+'
exp += '0'
print(exp)
print(eval(exp))