from itertools import permutations # 這個模塊用來全排列列表defjudge_particle(num):"""判斷數字是否為素數:return: 布爾值(為素數返回True)"""is_true =Trueif num ==0or num ==1:is_true =Falsefor i inrange(2, num):if num % i ==0:is_true =Falsereturn is_trueclassinterlink:# 連環陣類def__init__(self, num):self.num = numself.list=[]defarrange(self):"""對四位數進行全排列,給出所有可能:return:無"""temp = self.numself.list=list(num for num inlist(str(temp)))self.list=list(permutations(self.list))self.list=list(int("".join(i))for i in self.list)self.list=list(num for num in self.listif num >1000)k =0for i inrange(len(self.list)):ifnot judge_particle(self.list[i - k]):self.list.remove(self.list[i - k])k +=1deffind_result(self):"""找到全排列后的全部素數:return: 無"""temp =[]for i inrange(len(self.list)):for j inrange(len(self.list)):if(self.num - self.list[i]== self.list[j]- self.num or self.list[i]- self.num == self.list[j]- self.list[i]or self.list[j]- self.list[i]== self.num - self.list[j])and self.list[i]!= self.list[j]:temp.append(self.list[i])temp.append(self.list[j])temp.append(self.num)temp.sort()print("{} {} {}".format(temp[0], temp[1], temp[2]))returnprint("No")if __name__ =='__main__':# 程序開關end =""while end !="y"and end !="Y":whileTrue:try:use_input =int(input("請輸入一個四位素數:"))if1000<= use_input <=9999:if judge_particle(use_input):breakelse:print("輸入的四位整數必須為素數,{}不是素數!".format(use_input))print("No")continueelse:print("輸入的必須為四位整數且為素數!")continueexcept ValueError:print("輸入的必須為整數(4位)且為素數!")num = interlink(use_input)# num.arrange()# 全排列num.find_result()# 打印結果end =input("是否退出(y/n)")