fork download
  1. # Программа выводит первые факториалы чисел и их размер в битах
  2. # Формат вывода размера {общее_кол-во} - {нулей_в_конце} = {значащих_бит}
  3. # Copyright Алексей_Кузьминов © 2014
  4. print('{0:>2} | {1:^14} | {2}'.format('N', 'bit length', 'N!'))
  5. fact=1
  6. for i in range(1, 41):
  7. if (i-1)%5==0:
  8. print('---+----------------+--------------------------------------------------')
  9. fact*=i
  10. print('{0:>2} | {2:>3} - {3:>2} = {4:3} | {1}'.format(i, fact,
  11. fact.bit_length(), int((fact-1)^fact).bit_length()-1,
  12. fact.bit_length()-int((fact-1)^fact).bit_length()+1)
  13. )
Success #stdin #stdout 0.1s 10088KB
stdin
Standard input is empty
stdout
 N |   bit length   | N!
---+----------------+--------------------------------------------------
 1 |   1 -  0 =   1 | 1
 2 |   2 -  1 =   1 | 2
 3 |   3 -  1 =   2 | 6
 4 |   5 -  3 =   2 | 24
 5 |   7 -  3 =   4 | 120
---+----------------+--------------------------------------------------
 6 |  10 -  4 =   6 | 720
 7 |  13 -  4 =   9 | 5040
 8 |  16 -  7 =   9 | 40320
 9 |  19 -  7 =  12 | 362880
10 |  22 -  8 =  14 | 3628800
---+----------------+--------------------------------------------------
11 |  26 -  8 =  18 | 39916800
12 |  29 - 10 =  19 | 479001600
13 |  33 - 10 =  23 | 6227020800
14 |  37 - 11 =  26 | 87178291200
15 |  41 - 11 =  30 | 1307674368000
---+----------------+--------------------------------------------------
16 |  45 - 15 =  30 | 20922789888000
17 |  49 - 15 =  34 | 355687428096000
18 |  53 - 16 =  37 | 6402373705728000
19 |  57 - 16 =  41 | 121645100408832000
20 |  62 - 18 =  44 | 2432902008176640000
---+----------------+--------------------------------------------------
21 |  66 - 18 =  48 | 51090942171709440000
22 |  70 - 19 =  51 | 1124000727777607680000
23 |  75 - 19 =  56 | 25852016738884976640000
24 |  80 - 22 =  58 | 620448401733239439360000
25 |  84 - 22 =  62 | 15511210043330985984000000
---+----------------+--------------------------------------------------
26 |  89 - 23 =  66 | 403291461126605635584000000
27 |  94 - 23 =  71 | 10888869450418352160768000000
28 |  98 - 25 =  73 | 304888344611713860501504000000
29 | 103 - 25 =  78 | 8841761993739701954543616000000
30 | 108 - 26 =  82 | 265252859812191058636308480000000
---+----------------+--------------------------------------------------
31 | 113 - 26 =  87 | 8222838654177922817725562880000000
32 | 118 - 31 =  87 | 263130836933693530167218012160000000
33 | 123 - 31 =  92 | 8683317618811886495518194401280000000
34 | 128 - 32 =  96 | 295232799039604140847618609643520000000
35 | 133 - 32 = 101 | 10333147966386144929666651337523200000000
---+----------------+--------------------------------------------------
36 | 139 - 34 = 105 | 371993326789901217467999448150835200000000
37 | 144 - 34 = 110 | 13763753091226345046315979581580902400000000
38 | 149 - 35 = 114 | 523022617466601111760007224100074291200000000
39 | 154 - 35 = 119 | 20397882081197443358640281739902897356800000000
40 | 160 - 38 = 122 | 815915283247897734345611269596115894272000000000