123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/usr/bin/ruby
- # Daniel "Trizen" Șuteu
- # Date: 14 May 2018
- # https://github.com/trizen
- # Find the largest number whose factorial is less than 10^(10^n).
- # See also:
- # https://oeis.org/A119906
- define τ = Num.tau
- func a_1(n) {
- var t = n*log(10)
- (n + 10).bsearch_le { |k|
- lngamma(k+1) <=> t
- }
- }
- func a_2(n) {
- var t = n*log(10)
- (n + 10).bsearch_le { |k|
- ((k*(log(k)-1) + log(τ*k)/2)) <=> t
- }
- }
- for j in (0..50) {
- var n = 10**j
- var k = a_1(n)
- say "#{j} #{k}"
- assert(lgamma(k+1).log < (j*log(10) + log(log(10))), j)
- assert(lgamma(k+2).log > (j*log(10) + log(log(10))), j)
- assert_eq(k, a_2(n))
- }
- __END__
- 0 3
- 1 13
- 2 69
- 3 449
- 4 3248
- 5 25205
- 6 205022
- 7 1723507
- 8 14842906
- 9 130202808
- 10 1158787577
- 11 10433891463
- 12 94851898540
- 13 869200494599
- 14 8019346203785
- 15 74419210652835
- 16 694100859679691
- 17 6502464891216879
- 18 61154108320430275
- 19 577134533044522749
- 20 5463531774867094396
- 21 51865645374019695121
- 22 493605691759140412264
- 23 4708412700327664456441
- 24 45006563676466829747866
- 25 431030515495800330959690
- 26 4135271421019159985268144
- 27 39737872881916155456682466
- 28 382434585531529136506976638
- 29 3685654889911271767089158861
- 30 35566000205751593943612309324
- 31 343621523511389642125797372225
- 32 3323659049880171756547149226120
- 33 32181951201285474537895485226321
- 34 311917635656773532983489112416836
- 35 3026031831285250971158863726796844
- 36 29382559187200956976646535194767034
- 37 285539923960811790873783241089282065
- 38 2777061068592571504718455581667927021
- 39 27028829371643939893024878660179216026
- 40 263254321831235169282034131531639572407
- 41 2565752521753016953512727986724591348610
- 42 25022497618334069614020507552176153613923
- 43 244179878634545913976035414597821008724201
- 44 2384185475195871407008689012256184860639887
- 45 23292152343661431664635019895122205974095819
- 46 227671082380656404276747365211226185638628432
- 47 2226510468543990374699303977240445014667122494
- 48 21784662108910684733496380891610749490017427379
- 49 213244246864459623913534200247452501697066546234
- 50 2088314769879577064148725973109379417356880574721
|