(鼠尾草)
def msos_search(F,single=False):
方块={x^2代表F}中的x
MSOS=[]
E=0
对于子集(正方形,2)中的A,I:
如果A+I!=2*E:继续
C、 G=1,-1
B=3*E-A-C
D=3*E-A-G
F=3*E-C-I
H=3*E-G-I
如果len(正方形&{B,D,F,H})<4:继续
如果len({A,B,C,D,E,F,G,H,I})<9:继续
如果是单个:返回[A、B、C、D、E、F、G、H、I]
MSOS追加([A、B、C、D、E、F、G、H、I])
E=1
序列=[]
对于子集(正方形,2)中的A,I:
如果A+I!=2*E:继续
对于顺序中的C、G:
B=3*E-A-C
D=3*E-A-G
F=3*E-C-I
H=3*E-G-I
如果len(平方和{B,D,F,H})<4:继续
如果len({A,B,C,D,E,F,G,H,I})<9:继续
如果是单个:返回[A、B、C、D、E、F、G、H、I]
MSOS追加([A、B、C、D、E、F、G、H、I])
sequences.append((A,I))
返回MSOS
对于(3500,2)范围内的q:
如果len(因子(q))>1:继续
打印(q,msos_search(GF(q),single=True))
|