如何使用 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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程语言
C++
C#
MongoDB
MySQL
Javascript
PHP