如何使用Python在给定范围内找到Kaprekar数字?
修改后的Kaprekar数字是一个正整数n,它有d位数,当我们将它的平方拆分成两个部分——一个有d位的右部分r和一个包含其余d或d-1位数字的左部分l时,两部分的和等于原始数字(即l + r = n)。
您可以通过在给定范围内为每个数字测试给定条件来查找Kaprekar数字。
阅读更多:Python 教程
例子
def print_Kaprekar_nums(start, end):
for i in range(start, end + 1):
# 将平方数的数字取出,保存到列表digits中:
sqr = i ** 2
digits = str(sqr)
# 现在循环从1到数字长度-1,对两边求和并检查
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
极客教程