に登場する素因数を(重複なしで)すべて集めてとする時、これらのどれも公約数とならないような部分列の数を求めればよい。包除を考えれば計算できそう。
正整数が与えられたとする。のうちで割り切れるものの総数をとするとき、が公約数であるような部分列の数は(空の部分列を除いて)である。したがって、求める数は包除原理に従って
のようになる。素数の数が奇数なら引いて偶数なら足せばよい。ただし、登場する素数の総数はだいぶ大きくなることがあるので、上の式の項全部を計算していては間に合わない。を超えるものを枝刈りすれば間に合う。
これ、計算量がわからない。正整数と素数列のprefixが与えられたとき、prefixの部分集合で総積がを超えないようなものが何通りあるか? という問題に帰着しそうだけど……
50
97132843 98363449 89581363 82864427 98796221 99147481 74352463 99477713 93924871 65541251 99070949 98476523 99270979 99661321 99880747 98045347 99838183 98904791 99582083 89757337 99752171 98440403 99331283 98037839 99472123 98862697 99813167 99238807 99743993 99408347 99727399 97821397 99594503 98248609 98207933 99677881 90900499 81927497 68034287 54143561 90426598 35950241 73138803 82613935 68388971 92946349 33984931 12780049 64097801 1062347
最悪っぽいケースを作ってみたらだいぶ時間が怪しかった。