समस्या विवरण
एक संशोधित कपरेकर संख्या एक धनात्मक पूर्ण संख्या n है जिसमें d अंक होते हैं, जैसे कि जब हम इसके वर्ग को दो टुकड़ों में विभाजित करते हैं - एक दायां टुकड़ा r जिसमें d अंक होते हैं और एक बायां टुकड़ा l जिसमें शेष d या d-1 अंक होते हैं, तो टुकड़ों का योग मूल संख्या के बराबर होता है (यानी l + r = n)।
आप दिए गए रेंज में प्रत्येक संख्या का दी गई शर्त के लिए परीक्षण करके कपरेकर नंबर ढूंढ सकते हैं।
उदाहरण
def print_Kaprekar_nums(start, end):
for i in range(start, end + 1):
# वर्ग से अंकों को सूची में प्राप्त करें:
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("संख्या: " + str(i) + " बायां: " + str(left) + " दायां: " + str(right))
print_Kaprekar_nums(150, 8000)
आउटपुट
संख्या: 297 बायां: 88 दायां: 209
संख्या: 703 बायां: 494 दायां: 209
संख्या: 999 बायां: 998 दायां: 1
संख्या: 1000 बायां: 1000 दायां: 0
संख्या: 2223 बायां: 494 दायां: 1729
संख्या: 2728 बायां: 744 दायां: 1984
संख्या: 4879 बायां: 238 दायां: 4641
संख्या: 4950 बायां: 2450 दायां: 2500
संख्या: 5050 बायां: 2550 दायां: 2500
संख्या: 5292 बायां: 28 दायां: 5264
संख्या: 7272 बायां: 5288 दायां: 1984
संख्या: 7777 बायां: 6048 दायां: 1729