結城さんの数当てクイズ

http://www.hyuki.com/d/200511.html#i20051109225533

解答は、以下のフィードバック欄からどうぞ。 解答は、日記などで公開させていただくかもしれませんので、そのおつもりで。Enjoy!

と結城さんが仰せなので、むしろこちらで自発的に公開させていただきました。

以下、ネタばれ御免。

11/10追記
答えそのものについては、背景と同色文字にしました。

問題A

0, 1, 10, 2, 100, 11, 1000, 3, 20, 101, 10000, 12, 100000, 1001, 次の数は?

この数列を眺めていると、桁上がりのタイミング(10, 100, 1000, 10000)がそれぞれ素数番目の数であることに気がつく。

4, 6, 8, 10, 12, 14番目の数は、各々の番号の1/2倍番目の数に、1を加えたものである。
同様に、9番目の数である20は、3(9の1/3倍)番目の数である10に、10を加えたものである。

以上から式を導く。
n番目の値をf(n)(nは自然数)として、

n=1のとき
f(n)=0
n=2のとき
f(n)=1
nが3以上の素数のとき
nの直前の素数をmとすると、f(n)=f(m)*10
nが素数以外のとき
nの約数となる最小の素数をlとすると、f(n)=f(n/l)+10^(l-2)

よって
答え  110

問題B

1, 11, 2, 12, 111, 21, 3, 13, 121, 1111, 112, 22, 211, 31, 4, 14, 131, 次の数は?

これ見よがしに飛び飛びに置かれた1, 2, 3, 4。
間隔に着目しよう。

1, 2の間は11。
2, 3の間は12, 111, 21。左右対称だ!
3, 4の間は13, 121, 1111, 112, 22, 211, 31。

これも13と31の位置は対称。
しかも3, 4の間の数の各桁を総和すると、常に4になる。
1+3=1+2+1=1+1+1+1=1+1+2=2+2=2+1+1=3+1

13から31までの間の変化を、2桁目以下に着目して見ると、

3→21→111→12→2→11→1

3を分解し、2と1に。さらに2を分解し、1と1と1に。そして、下2桁を足し合わせて2として、先頭1桁をシフトして消している。

このアルゴリズムで考えれば、14→131の次は、2桁目の3を分解し、2と1に。
よって、
答え  1211