# Программа выводит первые факториалы чисел и их размер в битах
# Формат вывода размера {общее_кол-во} - {нулей_в_конце} = {значащих_бит}
# 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)
)
IyDQn9GA0L7Qs9GA0LDQvNC80LAg0LLRi9Cy0L7QtNC40YIg0L/QtdGA0LLRi9C1INGE0LDQutGC0L7RgNC40LDQu9GLINGH0LjRgdC10Lsg0Lgg0LjRhSDRgNCw0LfQvNC10YAg0LIg0LHQuNGC0LDRhQojINCk0L7RgNC80LDRgiDQstGL0LLQvtC00LAg0YDQsNC30LzQtdGA0LAge9C+0LHRidC10LVf0LrQvtC7LdCy0L59IC0ge9C90YPQu9C10Llf0LJf0LrQvtC90YbQtX0gPSB70LfQvdCw0YfQsNGJ0LjRhV/QsdC40YJ9CiMgQ29weXJpZ2h0INCQ0LvQtdC60YHQtdC5X9Ca0YPQt9GM0LzQuNC90L7QsiDCqSAyMDE0CnByaW50KCd7MDo+Mn0gfCB7MTpeMTR9IHwgezJ9Jy5mb3JtYXQoJ04nLCAnYml0IGxlbmd0aCcsICdOIScpKQpmYWN0PTEKZm9yIGkgaW4gcmFuZ2UoMSwgNDEpOgoJaWYgKGktMSklNT09MDoKCSAgcHJpbnQoJy0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tJykKCWZhY3QqPWkKCXByaW50KCd7MDo+Mn0gfCB7Mjo+M30gLSB7Mzo+Mn0gPSB7NDozfSB8IHsxfScuZm9ybWF0KGksIGZhY3QsCgkgIGZhY3QuYml0X2xlbmd0aCgpLCBpbnQoKGZhY3QtMSleZmFjdCkuYml0X2xlbmd0aCgpLTEsCgkgIGZhY3QuYml0X2xlbmd0aCgpLWludCgoZmFjdC0xKV5mYWN0KS5iaXRfbGVuZ3RoKCkrMSkKCSk=