Что ты намудрил, у тебя числа не думаю, что большие
n = 128
i = 1
while i <= n:
i = i + 1
if n % i == 0:
print('============')
print(i)
print(n/i)
print(((n/i)**0.5))
Вот так делаешь, потом еще поставишь проверку на то, что (n/i)**0.5) - целое число и не равно n и будешь получить все пары разложений