Извините, что я спрашиваю это здесь, потому что это кажется действительно элементарным и, скорее всего, спрашивалось раньше.Тем не менее, я искал и пытался часами, и я не мог найти ничего, что помогло бы мне.Я хочу написать программу, которая запрашивает верхнюю границу и возвращает таблицу с парами чисел (m, n), так что сумма делителей n (исключая n) равна m, и наоборот.
Теперь я написал следующее
bound = int(input('upper bound = '))
l = len(str(bound))
for x in range(1,l):
print(' ', end='')
print('m', end=' ')
for y in range(1,l):
print(' ', end='')
print('n', end='')
for i in range(1,bound):
for j in range (1, bound):
if j == i:
break
som_i = 0
som_j = 0
for k in range(1,i):
if i % k == 0:
som_i += k
for l in range(1,j):
if j % l == 0:
som_j += l
if som_i == j and som_j == i:
print('{:{prec}d}'.format(j, prec = l).rstrip(''), end="")
print('{:{prec}d}'.format(i, prec = l+2).lstrip(''), end="")
Проблема в том, что я хочу, чтобы пара отображалась в табличной форме из стороны в сторону и с правильным отступом, в зависимости от длины числа,Что бы я ни пытался (я уже прочитал очень много шагов с подобными вопросами), Python продолжает добавлять пробелы.
Может кто-нибудь помочь мне в этом?Я действительно новичок в Python, и я не могу понять это сам.Если уместно, я использую версию 3.6.
РЕДАКТИРОВАТЬ:
Например, когда я запускаю программу, я получаю:
upper bound = 300
m n
220
284
, а я хочу получить
upper bound = 300
m n
220 284
И аналогично для больших входов.
EDIT2 Мой вопрос не является дубликатом, поскольку я уже пытался добавить
end=""
, который не работал.