/2位數(shù),使得這兩個數(shù)加起來等于原數(shù)。例如,45的平方是2025,將2025分成20和25,20+25=45,因此45是卡普爾卡數(shù)。
下面我們來。
,輸出參數(shù)是一個布爾值True或False。
)的平方 2
將平方數(shù)轉(zhuǎn)換為字符串
square_str = str(square)
計算平方數(shù)的位數(shù)um(square_str)
將平方數(shù)分成兩個部分um_digits//2]um_digits//2]
將左右兩部分轉(zhuǎn)換為整數(shù)umt(left_half)umt(right_half)
判斷左右兩部分是否加起來等于原數(shù)umum True
else False
接下來,我們可以用這個函數(shù)來找出所有的卡普爾卡數(shù)。我們可以從1到10000遍歷所有的整數(shù),判斷每個整數(shù)是否為卡普爾卡數(shù)。
ge(1, 10000))t)
運行上述代碼,我們可以得到如下輸出
這些數(shù)都是卡普爾卡數(shù)。
,我們可以將上述代碼封裝成一個函數(shù),以便在其他程序中調(diào)用。
kaprekars = []ged+1))d) kaprekars
我們可以調(diào)用這個函數(shù)來找出某個區(qū)間內(nèi)的所有卡普爾卡數(shù)。
td_kaprekars(1, 10000))
運行上述代碼,我們可以得到與之前相同的輸出結(jié)果。
綜上所述,我們可以。這個算法可以用來找出所有的卡普爾卡數(shù),或者判斷一個給定的數(shù)是否為卡普爾卡數(shù)。