Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีหา Kaprekar Numbers ในช่วงที่กำหนดด้วย Python

Modified Kaprekar number คือจำนวนเต็มบวก n ที่มี d หลัก ซึ่งเมื่อแยกกำลังสองของมันเป็นสองชิ้น - ชิ้นขวา r มี d หลัก และชิ้นซ้าย l มี d หรือ d-1 หลัก ผลรวมของชิ้นเท่ากับตัวเลขเดิม (l + r = n)

หา Kaprekar numbers ในช่วงได้โดยทดสอบเงื่อนไขทุกตัวเลขในช่วง

ตัวอย่าง

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