একটি মডিফাইড ক্যাপ্রেকার সংখ্যা হলো একটি ধনাত্মক পূর্ণসংখ্যা 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)
# এখন ১ থেকে দৈর্ঘ্য-১ পর্যন্ত লুপ করুন, দু পাশের যোগফল চেক করুন
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: 297 Left: 88 Right: 209 Number: 703 Left: 494 Right: 209 Number: 999 Left: 998 Right: 1 Number: 1000 Left: 1000 Right: 0 Number: 2223 Left: 494 Right: 1729 Number: 2728 Left: 744 Right: 1984 Number: 4879 Left: 238 Right: 4641 Number: 4950 Left: 2450 Right: 2500 Number: 5050 Left: 2550 Right: 2500 Number: 5292 Left: 28 Right: 5264 Number: 7272 Left: 5288 Right: 1984 Number: 7777 Left: 6048 Right: 1729