from random import randint from math import floor def myDivision(number: str, divider: int) -> str: res = '' first = True i = 0 temp = 0 while i < len(number): if (temp < divider): temp = temp * 10 + int(number[i]) i = i + 1 if first == False: res = res + '0' first = False res = res + str(floor(temp / divider)) temp = temp % divider first = True return int(res) x = randint(12345678910121416, 123456789101214161820) divider = 128 print('X:', int(x)) print('Divider:', int(divider)) y = floor(x / divider) myY = floor(myDivision(str(x), divider)) z = x % divider print('Py Division:', y) print('My Division:', myY) print('Remaining:', z) print(y, '*', divider, '+', z, 'must be equals to', x, ', Right?') print('Real X:', int(x)) print('My X:', myY * divider + z) print('Py X:', y * divider + z) print('Always their first 16 digits is equal') print('Py X Equals Real X?', y * divider + z == x) print('My X Equals Real X?', myY * divider + z == x)