def check_kaprekar(num):
square = str(num**2)
for i in range(1, len(square)):
a,b = int(square[:i]), int(square[i:])
if a+b == num and a and b:
return True
return False
def find_kaprekar(start, end):
return [n for n in range(start, end+1) if check_kaprekar(n)]
print(find_kaprekar(2, 100))
print(find_kaprekar(101, 9000))
ZGVmIGNoZWNrX2thcHJla2FyKG51bSk6CiAgICBzcXVhcmUgPSBzdHIobnVtKioyKQogICAgZm9yIGkgaW4gcmFuZ2UoMSwgbGVuKHNxdWFyZSkpOgogICAgICAgIGEsYiA9IGludChzcXVhcmVbOmldKSwgaW50KHNxdWFyZVtpOl0pCiAgICAgICAgaWYgYStiID09IG51bSBhbmQgYSBhbmQgYjoKICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgIHJldHVybiBGYWxzZQoKZGVmIGZpbmRfa2FwcmVrYXIoc3RhcnQsIGVuZCk6CiAgICByZXR1cm4gW24gZm9yIG4gaW4gcmFuZ2Uoc3RhcnQsIGVuZCsxKSBpZiBjaGVja19rYXByZWthcihuKV0KCnByaW50KGZpbmRfa2FwcmVrYXIoMiwgMTAwKSkKcHJpbnQoZmluZF9rYXByZWthcigxMDEsIDkwMDApKQ==
[9, 45, 55, 99]
[297, 703, 999, 2223, 2728, 4879, 4950, 5050, 5292, 7272, 7777]