2021年7月31日土曜日

210731

Ruby


A278559

p(25*n+24) を出力してみた。

def s(k, n)
  s = 0
  (1..n).each{|i| s += i if n % i == 0 && i % k == 0}
  s
end

def A(ary, n)
  a_ary = [1]
  a = [0] + (1..n).map{|i| ary.inject(0){|s, j| s + j[1] * s(j[0], i)}}
  (1..n).each{|i| a_ary << (1..i).inject(0){|s, j| s - a[j] * a_ary[-j]} / i}
  a_ary
end

n = 10
a = [5 ** 2 * 63, 5 ** 5 * 52, 5 ** 7 * 63, 5 ** 10 * 6, 5 ** 12]
ary = (0..4).map{|i| p [0] * i + A([[5, 6 * (i + 1)], [1, -6 * (i + 1) - 1]], n)}
(0..n).each{|i|
  print "#{(0..4).inject(0){|s, j| s + a[j] * ary[j][i]}} = "
  (0..4).each{|j|
    print " + " if j > 0
    print "#{a[j]} * #{ary[j][i]}"
  }
  puts
}

出力結果
[1, 7, 35, 140, 490, 1541, 4480, 12195, 31465, 77525, 183626]
[0, 1, 13, 104, 637, 3276, 14808, 60541, 228124, 803010, 2667054, 8422715]
[0, 0, 1, 19, 209, 1710, 11495, 66862, 347339, 1645875, 7221520, 29668595, 115116233]
[0, 0, 0, 1, 25, 350, 3575, 29575, 209381, 1312075, 7443825, 38854075, 188836375, 862496902]
[0, 0, 0, 0, 1, 31, 527, 6448, 63240, 526443, 3852742, 25380847, 153068700, 855816380, 4479330091]
1575 = 1575 * 1 + 162500 * 0 + 4921875 * 0 + 58593750 * 0 + 244140625 * 0
173525 = 1575 * 7 + 162500 * 1 + 4921875 * 0 + 58593750 * 0 + 244140625 * 0
7089500 = 1575 * 35 + 162500 * 13 + 4921875 * 1 + 58593750 * 0 + 244140625 * 0
169229875 = 1575 * 140 + 162500 * 104 + 4921875 * 19 + 58593750 * 1 + 244140625 * 0
2841940500 = 1575 * 490 + 162500 * 637 + 4921875 * 209 + 58593750 * 25 + 244140625 * 1
37027355200 = 1575 * 1541 + 162500 * 3276 + 4921875 * 1710 + 58593750 * 350 + 244140625 * 31
397125074750 = 1575 * 4480 + 162500 * 14808 + 4921875 * 11495 + 58593750 * 3575 + 244140625 * 527
3646072432125 = 1575 * 12195 + 162500 * 60541 + 4921875 * 66862 + 58593750 * 29575 + 244140625 * 6448
29454549941750 = 1575 * 31465 + 162500 * 228124 + 4921875 * 347339 + 58593750 * 209381 + 244140625 * 63240
213636919820625 = 1575 * 77525 + 162500 * 803010 + 4921875 * 1645875 + 58593750 * 1312075 + 244140625 * 526443
1412749565173450 = 1575 * 183626 + 162500 * 2667054 + 4921875 * 7221520 + 58593750 * 7443825 + 244140625 * 3852742