python實現連環陣

2021-10-08 15:25:53 字數 3192 閱讀 3409

傑洛特主動出擊狂獵的老巢,然而在此之前,他遇到了乙個女術士,傑洛特想要女術士助自己一臂之力,她卻出了乙個難題給傑洛特,只有答對了才能與他同行。 女術士給傑洛特乙個四位數的素數,要求他說出這個四位數的數字的另外兩個四位素數(從小到達輸出)滿足下面條件。

另外兩種組合的四位數也必須是素數

這三個四位數構成等差數列

如果沒有符合條件的組合, 則返回no

4817

1232

1487 4817 8147

no

from itertools import permutations   # 這個模組用來全排列列表

defjudge_particle

(num)

:"""

判斷數字是否為素數

:return: 布林值(為素數返回true)

"""is_true =

true

if num ==

0or num ==1:

is_true =

false

for i in

range(2

, num)

:if num % i ==0:

is_true =

false

return is_true

class

interlink

:# 連環陣類

def__init__

(self, num)

: self.num = num

self.

list=[

]def

arrange

(self)

:"""

對四位數進行全排列,給出所有可能

:return:無

"""temp = self.num

self.

list

=list

(num for num in

list

(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.

list

if num >

1000

) k =

0for i in

range

(len

(self.

list))

:ifnot judge_particle(self.

list

[i - k]):

self.

list

.remove(self.

list

[i - k]

) k +=

1def

find_result

(self)

:"""

找到全排列後的全部素數

:return: 無

"""temp =

for i in

range

(len

(self.

list))

:for j in

range

(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]:

list

[i])

list

[j])

temp.sort(

)print

("{} {} {}"

.format

(temp[0]

, temp[1]

, temp[2]

))return

print

("no"

)if __name__ ==

'__main__'

:# 程式開關

end =

""while end !=

"y"and end !=

"y":

while

true

:try

: use_input =

int(

input

("請輸入乙個四位素數:"))

if1000

<= use_input <=

9999

:if judge_particle(use_input)

:break

else

:print

("輸入的四位整數必須為素數,{}不是素數!"

.format

(use_input)

)print

("no"

)continue

else

:print

("輸入的必須為四位整數且為素數!"

)continue

except valueerror:

print

("輸入的必須為整數(4位)且為素數!"

) num = interlink(use_input)

# num.arrange(

)# 全排列

num.find_result(

)# 列印結果

end =

input

("是否退出(y/n)"

)

NOI2003 智破連環陣

先甩兩個 這是樓教主的 用的 部分搜尋 匹配 飛快比較神 演算法合集之 部分搜尋 高效演算法在搜尋問題中的應用 這是朱澤園的算是 面向資料程式設計.用的 貪心搜尋 各種剪枝 但用的剪枝還是比樓教主的少 zplhz 智破連環陣 我寫的 朱澤園的演算法 自己對著資料卡過去的 剪枝真是神啊 乙個我感覺沒啥...

python 連環import問題

首先說明一下這是怎樣的乙個問題 結構如圖所示 如下 c.py import src.a b.py print hello a.py import b 此時,我們執行c.py,會報錯 這是為什麼呢?原因在於當前目錄是c.py所在的目錄,而在這個目錄中沒有b.py這個模組。所以,我們該怎麼辦呢?解決的方...

阿里八卦陣DFS和BFS實現

import copy def getsumbfs i,j,m,n,maps 如果是廣度優先 先找到所有的鄰接點 再依次往下找鄰接點 quenue i,j sum maps i j maps i j 0 while quenue 找八個方向 i,j quenue 0 0 quenue 0 1 if ...