如何使用 Python 在給定的範圍內查詢卡普列卡數字?


修改後的卡普列卡數是一個帶有 d 位數字的正整數 n,當我們將它的平方分成兩部分時 - 一個帶有 d 位數字的右側部分 r 和一個左側部分 l,其中包含剩餘的 d 或 d−1 位數字,各部分的和等於原始數字(即 l + r = n)。

透過在給定範圍內測試每個數字是否滿足給定條件,可以在給定範圍內找到卡普列卡數。

示例

def print_Kaprekar_nums(start, end):
   for i in range(start, end + 1):
      # Get the digits from the square in a list:
      sqr = i ** 2
      digits = str(sqr)

      # Now loop from 1 to length of the number - 1, sum both sides and check
      length = len(digits)
      for x in range(1, length):
         left = int("".join(digits[:x]))
         right = int("".join(digits[x:]))
         if (left + right) == i:
            print("Number: " + str(i) + "Left: " + str(left) + " Right: " + str(right))

print_Kaprekar_nums(150, 8000)

輸出

這將給出以下輸出 -

Number: 297Left: 88 Right: 209
Number: 703Left: 494 Right: 209
Number: 999Left: 998 Right: 1
Number: 1000Left: 1000 Right: 0
Number: 2223Left: 494 Right: 1729
Number: 2728Left: 744 Right: 1984
Number: 4879Left: 238 Right: 4641
Number: 4950Left: 2450 Right: 2500
Number: 5050Left: 2550 Right: 2500
Number: 5292Left: 28 Right: 5264
Number: 7272Left: 5288 Right: 1984
Number: 7777Left: 6048 Right: 1729

更新時間: 05-03-2020

770 人檢視

開啟您的 職業生涯

完成課程獲得認證

立即開始
廣告
© . All rights reserved.