- 867 名前:デフォルトの名無しさん mailto:sage [2018/12/16(日) 20:37:34.86 ID:VvrWecHB.net]
- >>835 Ruby 1)は省略
require 'prime' def fuge(n, cand = Prime.to_a(n), h = {}, succ = 0) c0 = cand[0] return h[[n, c0]] if h[[n, c0]] return 0 if n == 0 || !c0 || n < c0 return 1 if n == c0 x = succ == 2019 ? 0 : fuge(n - c0, cand, h, succ + 1) h[[n, c0]] = fuge(n, cand[1..-1], h) + x end p fuge(19) # => 23 p fuge(31) # => 111 p fuge(2019) # => 576202207044176168646563 p fuge(201931, Prime.to_a(31)) # => 4021686887140718864271667825968903
|

|