python实现:输入正整数n(3≤n<1000 ), 计算有多少对素数的和等于输入的整个正整数,并输出结果。
例如:input 10
输出对数结果为:2对
两对素数分别为:(5 ,5) (3,7)
话不多说直接上代码:
#素数问题z
def is_Prime(n):#判断是否为素数并返回Boolean值
while n<=1: ##输入值的异常处理
print("输入的数值错误,请重新输入!")
n=int(input("请输入一个数值:"))
flag = False
if n==2: #对于2做特殊处理
return True
else:
for i in range(2,n):
if n%i==0:
flag = True
break
if flag:
return False
else:
return True
a=int(input("请输入一个数值:"))
count = 0
list = []
for i in range(2,int(a/2)+1):
if is_Prime(i) and is_Prime(a-i):
list.append(i)
list.append(a-i)
count+=1
print("输出对数结果为{:}对".format(count))
print("{}对素数分别为:".format(count),end='')
for i in range(0,count*2,2):
print("({},{}) ".format(list[i],list[i+1]),end='')