#A327544的Python程序#Michael S.Branicky,2021年2月4日来自numba import njit@国家统计局def-lrp(k,bits):#最长的重复前缀(允许重叠)对于范围内的i(位-1、0、-1):左1=(1<<i)掩码=left1-1shifted_mask=(掩码<<(位-i))前缀=((移位掩码&k)>>(位-i)+左1对于范围(1,位-i+1)中的j:sj=(((移位掩码>>j)&k)>>(位-i-j))+左1如果sj==前缀:返回前缀返回-1@尼吉特def-lrs(k,bits):#最长的重复后缀(允许重叠)对于范围内的i(位-1、0、-1):左1=(1<<i)掩码=left1-1后缀=(mask&k)+left1对于范围(1,位-i+1)中的j:sj=(((掩码<<j)&k)>>j)+左1如果sj==后缀:返回后缀返回-1@尼吉特定义a(n):如果n=1:返回2c=0对于范围(2**(n-1))中的i:k=(1<<(n-1))+i如果lrp(k,n)==lrs(k,n):c+=1返回2*c在Google Colab上打印([a(n)代表范围(1,21)中的n)#大约1秒#打印n a(n)经过的时间,以及#写入b文件从时间导入时间time0=时间()alst=[]对于范围(110001)中的n:a=a(n)alst.append(an)(附加)打印(n,an,time()-time0,flush=True)打开('b327544.txt','a')为f:f.write(f“{n}{an}\n”)