ここでは と のビットごとの排他的論理和(XOR)を と表す。
と のXOR積を、基数2の積み算による乗算と同様であるが、中間結果を通常の整数の加算の代わりにXORするものと定義し、 と表す。
例えば、もしくは2進表記で である:
XOR素数とは、1より大きい整数 で、1より大きい二つの整数のXOR積ではないものをいう。 上の例は9がXOR素数でないことを示している。 同様に、 はXOR素数でない。 XOR素数は小さいものから順に で、10個めのXOR素数は41である。
個めのXOR素数を答えよ。
Rand48はいくつかのプログラミング言語で使われる疑似乱数生成器である。これは任意に与えられた整数から数列を という規則に従い生成する。
とする。数列 はという規則を介して無限文字列 に変換される。
例えば、と選ぶと の冒頭は "bQYicNGCY..." となる。 さらに、100文字めからの位置に "RxqLBfWzv" という部分文字列の最初の出現がある。
あるいは、 の冒頭が "EULERcats..." ならば、 に違いない。
今、 が "PuzzleOne..." で始まっていると仮定する。 の部分列として最初に "LuckyText" が出現する位置を求めよ。
(原題 Reversible prime squares)
169と961はどちらも素数の平方数である。961を後ろから読むと169になる。
ここで、以下を満たす数をリバーシブル素数平方数と呼ぶことにする。
回文数でない。
素数の平方数である。
後ろから読んだ数も、素数の平方数である。
169と961は回文数でないので、いずれもリバーシブル素数平方数である。
リバーシブル素数平方数の最初の50個の和を求めよ。