fork download
  1.  
  2. Nmax = 1090000
  3.  
  4. # division[x] = xの約数.
  5. division = Array.new(Nmax+1){[1]}
  6.  
  7. 2.upto(Nmax) do |x|
  8. y = x
  9. while y <= Nmax
  10. division[y] << x
  11. y += x
  12. end
  13. end
  14.  
  15. # 高度合成数
  16. highly_composite_number = []
  17.  
  18. high = 0
  19. 1.upto(Nmax) do |x|
  20. if high < division[x].size
  21. high = division[x].size
  22. highly_composite_number << x
  23. end
  24. end
  25.  
  26.  
  27. highly_composite_number.each do |hcn|
  28. sum=division[hcn].reduce(:+)
  29. nln=(Math::log(Math::log(hcn)+1)*hcn).ceil
  30. puts "%7d : sum=%d, NlnlnN=%d, rate=%8.5f"%[hcn, sum, nln, nln.to_f/sum]
  31. end
  32.  
Success #stdin #stdout 2.99s 286880KB
stdin
Standard input is empty
stdout
      1 : sum=1, NlnlnN=0, rate= 0.00000
      2 : sum=3, NlnlnN=2, rate= 0.66667
      4 : sum=7, NlnlnN=4, rate= 0.57143
      6 : sum=12, NlnlnN=7, rate= 0.58333
     12 : sum=28, NlnlnN=15, rate= 0.53571
     24 : sum=60, NlnlnN=35, rate= 0.58333
     36 : sum=91, NlnlnN=55, rate= 0.60440
     48 : sum=124, NlnlnN=77, rate= 0.62097
     60 : sum=168, NlnlnN=98, rate= 0.58333
    120 : sum=360, NlnlnN=211, rate= 0.58611
    180 : sum=546, NlnlnN=329, rate= 0.60256
    240 : sum=744, NlnlnN=449, rate= 0.60349
    360 : sum=1170, NlnlnN=695, rate= 0.59402
    720 : sum=2418, NlnlnN=1459, rate= 0.60339
    840 : sum=2880, NlnlnN=1719, rate= 0.59688
   1260 : sum=4368, NlnlnN=2642, rate= 0.60485
   1680 : sum=5952, NlnlnN=3581, rate= 0.60165
   2520 : sum=9360, NlnlnN=5490, rate= 0.58654
   5040 : sum=19344, NlnlnN=11360, rate= 0.58726
   7560 : sum=28800, NlnlnN=17355, rate= 0.60260
  10080 : sum=39312, NlnlnN=23428, rate= 0.59595
  15120 : sum=59520, NlnlnN=35730, rate= 0.60030
  20160 : sum=79248, NlnlnN=48179, rate= 0.60795
  25200 : sum=99944, NlnlnN=60734, rate= 0.60768
  27720 : sum=112320, NlnlnN=67044, rate= 0.59690
  45360 : sum=180048, NlnlnN=111654, rate= 0.62013
  50400 : sum=203112, NlnlnN=124511, rate= 0.61302
  55440 : sum=232128, NlnlnN=137407, rate= 0.59194
  83160 : sum=345600, NlnlnN=208891, rate= 0.60443
 110880 : sum=471744, NlnlnN=281079, rate= 0.59583
 166320 : sum=714240, NlnlnN=426880, rate= 0.59767
 221760 : sum=950976, NlnlnN=574019, rate= 0.60361
 277200 : sum=1199328, NlnlnN=722133, rate= 0.60211
 332640 : sum=1451520, NlnlnN=871011, rate= 0.60007
 498960 : sum=2160576, NlnlnN=1321053, rate= 0.61144
 554400 : sum=2437344, NlnlnN=1471958, rate= 0.60392
 665280 : sum=2926080, NlnlnN=1774822, rate= 0.60655
 720720 : sum=3249792, NlnlnN=1926717, rate= 0.59287
1081080 : sum=4838400, NlnlnN=2919914, rate= 0.60349