# Программа выводит первые факториалы чисел и их размер в битах
# Формат вывода размера {общее_кол-во} - {нулей_в_конце} = {значащих_бит}
# Copyright Алексей_Кузьминов © 2014
print('{0:>2} | {1:^14} | {2}'.format('N', 'bit length', 'N!'))
fact=1
for i in range(1, 41):
	if (i-1)%5==0:
	  print('---+----------------+--------------------------------------------------')
	fact*=i
	print('{0:>2} | {2:>3} - {3:>2} = {4:3} | {1}'.format(i, fact,
	  fact.bit_length(), int((fact-1)^fact).bit_length()-1,
	  fact.bit_length()-int((fact-1)^fact).bit_length()+1)
	)