734 : 素数のビット

2個のビットの「論理OR」は、両方のビットが0のとき0、それ以外のとき1である。 2個の正整数の「ビットごとのOR」は、それぞれの整数を二進表現し、対応するビットについて「論理OR」を施したものである。 (訳注:正整数のタプルの「ビットごとのOR」は、その要素全てをビットごとのORで畳み込んだものである。)

例えば、10と6のビットごとのORは14である。 (10=10102,6=11102,14=11102)(\because 10 = 1010_2, 6 = 1110_2, 14 = 1110_2)

T(n,k)T(n, k)を、以下のようなkk項組(x1,x2,,xk)(x_1, x_2, \dots, x_k)の個数とする。

  • 全てのxix_inn以下の素数である

  • タプルのビットごとのORはnn以下の素数である。

例えば T(5,2)=5T(5, 2) = 5である。 5個の2項組は(2, 2), (2, 3), (3, 2), (3, 3), (5, 5)である。

T(100,3)=3355,T(1000,10)=2071632mod1000000007T(100, 3) = 3355, T(1000, 10) = 2071632 \bmod 1\,000\,000\,007である。

T(106,999983)T(10^6, 999983)を求めよ。10000000071\,000\,000\,007での剰余を答えよ。

最終更新