import math
n = int(input())
for i in range(1, math.isqrt + 1):
if n % i == 0: print(*{i, n // i}) Но если первый делитель в паре обязательно должен быть больше второго, выражение внутри print немного усложняется: print(*sorted({i, n // i}, reverse=True)) P.S. В Python встроена функция целочисленного квадратного корня и использовать вещественный квадратный корень, рискуя потерять последний делитель из-за погрешности вычислений, не имеет смысла.
Поскольку требуют выводить делители парами типа
16
16 1
8 2
4
придумалось такое решение n = int(input())
l = []
for i in range(1,n+1):
if not n % i:
l +=
l2 = l[:len(l) // 2]
l1 = l[len(l) // 2:][::-1]
r = [l1,l2]
m = max(list(map(len,r)))
t = 0
for i in range(len(r)):
if len(r) == m:
t = i
for i in range(len(r[t - 1])):
print(r[0], r[1], end=' '
print('\n',end=''
if len(r[t]) != len(r[t - 1]):
print(r[t][-1])