[Python] Python - Loop, Split & Check[Python] Python - Loop, Split & Check

✂️

Kaprekar Numbers

Week 45, 2026

def writeToFile(fileName:str, data:list[str]) -> None: try: file = open(fileName, 'w') for line in data: file.write(line+'\n') file.close() print("[WTF] Ans.txt made..") except: print('[ERROR] File problem :/') def isKeprekar(num:int) -> tuple[bool, list[str]]: isK, ans = False, [] square = num*num sNum = str(square) for i in range(1, len(sNum)): left = int(sNum[0:i]) righ = int(sNum[i:]) if ( left != 0 and righ != 0 and (left+righ) == num ): ans.append(sNum[0:i]) ans.append(sNum[i:]) isK = True break return isK, ans def main() -> None: ''' 9 (81): 8 + 1 45 (2025): 20 + 25 55 (3025): 30 + 25 99 (9801): 98 + 01 ''' data = [] for i in range(1, 1_000_001): check, ans = isKeprekar(i) if check: print(f'{i} ({i*i}): {ans[0]} + {ans[-1]}') data.append(f'{i} ({i*i}): {ans[0]} + {ans[-1]}') print("[main] 1 -> 1_000_000 Keprekar done...") print(f"[main] data has {len(data)} lines") writeToFile("ans.txt", data) if __name__ == "__main__": main()