Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách tìm số Kaprekar trong khoảng cho trước bằng Python


Số Kaprekar sửa đổi là số nguyên dương n có d chữ số, sao cho khi tách bình phương của nó thành hai phần - phần phải r có d chữ số và phần trái l chứa d hoặc d−1 chữ số còn lại, tổng hai phần bằng số gốc (l + r = n).

Bạn tìm số Kaprekar trong khoảng bằng cách kiểm tra từng số điều kiện cho trước trong khoảng.

Ví dụ

def print_Kaprekar_nums(start, end): for i in range(start, end + 1): # Lấy chữ số từ bình phương trong list: sqr = i ** 2 digits = str(sqr) # Lặp từ 1 đến độ dài số - 1, cộng hai bên và kiểm tra length = len(digits) for x in range(1, length): left = int("".join(digits[:x])) right = int("".join(digits[x:])) if (left + right) == i: print("Số: " + str(i) + " Trái: " + str(left) + " Phải: " + str(right)) print_Kaprekar_nums(150, 8000)

Kết quả

Điều này sẽ cho kết quả −

Số: 297 Trái: 88 Phải: 209 Số: 703 Trái: 494 Phải: 209 Số: 999 Trái: 998 Phải: 1 Số: 1000 Trái: 1000 Phải: 0 Số: 2223 Trái: 494 Phải: 1729 Số: 2728 Trái: 744 Phải: 1984 Số: 4879 Trái: 238 Phải: 4641 Số: 4950 Trái: 2450 Phải: 2500 Số: 5050 Trái: 2550 Phải: 2500 Số: 5292 Trái: 28 Phải: 5264 Số: 7272 Trái: 5288 Phải: 1984 Số: 7777 Trái: 6048 Phải: 1729