In this HackerRank String Formatting problem in python we need to code a program in which we can accept an integer input n that's greater than 1. and on the output screen, we need to print out the binary, decimal, hexadecimal and octal number of that given integer.

## Problem solution in Python 2 programming.

```N = int(raw_input())

width = len(str(bin(N)))-2

for num in range(1,N+1):
for base in 'doXb':
print '{0:{width}{base}}'.format(num, base=base, width=width),
print```

## Problem solution in Python 3 programming.

```N = int(input())
l = len(bin(N)) - 2

for i in range(1, N + 1):
f = ""
for c in "doXb":
if f:
f += " "
f += "{:>" + str(l) + c + "}"
print(f.format(i, i, i, i))```

### Problem solution in PyPy programming.

```n = int(raw_input())
width = len("{0:b}".format(n))
for i in xrange(1,n+1):
print "{0:{width}d} {0:{width}o} {0:{width}X} {0:{width}b}".format(i, width=width)```

### Problem solution in pypy3 programming.

```def print_formatted(number):
width=len(bin(number))-2
for num in range(1,number+1):
for base in ('d', 'o', 'X', 'b'):
print("{0:{width}{base}}".format(num, base=base, width=width), end=' ')
print()```

Note: in the above code in the for loop there is only one single line of code. for visibility purpose am going to cut down that line of code into another line.