根据要求写出来了程序,运行没有错误,不知道是不是条件不够还是写多了?(之前写鸡兔同笼就遇到过),但是现在的条件是一个一个对应的。有点不知所措了😕😕
第一张图是要求
第二,三张图是自己写的代码
第四张图是预期结果(应该输出的)
最后一张图是我自己的输出结果。
if i %2 == 0 and is_prime(i) 满足这个结果的只有2,而num - 2又不是质数,后面的判断又不满足。所以这个循环没有一个数满足,循环结束后只能打印 “data error”
def is_prime(n):
if n < 2: return False
if n == 2: return True
for i in range(2, int(n**0.5)+1):
if n % i == 0: return False
return True
def goldbach_conjecture(num):
if num % 2 == 1 or num < 4: print("Data error!")
else:
for i in range(2, num//2+1):
if is_prime(i) and is_prime(num-i):
print(f"{num}={i}+{num-i}")
if __name__ == "__main__":
positive_even = int(input())
goldbach_conjecture(positive_even)