0312 谢宾斯基环路
* * * *
拉格朗日计划
* * * *
谢宾斯基环路

一阶谢宾斯基图$S_1$是一个等边三角形。

将三个$S_n$摆在一起,使其两两之间都有一个公共顶点,就得$S_{n+1}$。



记$C(n)$是经过$S_n$中所有顶点恰好一次的回路数目。

例如$C(3)=8$,因为在$S_3$上恰好可以画出$8$条这样的回路,如下图所示:



同样可以验证: \begin{align*} C(1)=C(2)&=1, \\ C(5)&=71328803586048, \\ C(10000) \bmod 10^8&=37652224 \\ C(10000) \bmod 13^8&=617720485 \\ \end{align*} 求$C(C(C(10000))) \bmod 13^8$。

本题难度:



解答

根据OEIS A246959的信息,$n\ge 3$时有 $$C(n)=8\times12^{\frac{3^{n-2}-3}{2}}=2^{3^{n-2}}\times 3^{\frac{3^{n-2}-3}{2}}.$$ 令$\varphi$为欧拉Totient函数,直接计算出$\varphi(13^8)$、$\varphi(\varphi(13^8))$、$\varphi(\varphi(\varphi(13^8)))$、$\ldots$再递归求幂即可得最终结果$324681947$。

注:以下为Python 3代码,因Python 3中的pow直接实现了快速幂。

t=[815730721,752982204,231686832,71288256,21934848,6749184,2076672,638976,196608]

def cal(s,n,m):
    if s==0:
        return n%t[m]
    p=pow(3,cal(s-1,n,m+2)-2,t[m+1])
    return (pow(2,p,t[m])*pow(3,(p-3)//2,t[m]))%t[m]

print(cal(3,10000,0))