def FFT(polynomial0,polynomial1,digit=10**5,round_to_int=True): assert digit==0 or round_to_int if len(polynomial0)*len(polynomial1)<=60: polynomial=[0]*(len(polynomial0)+len(polynomial1)-1) for i in range(len(polynomial0)): for j in range(len(polynomial1)): polynomial[i+j]+=polynomial0[i]*polynomial1[j] return polynomial def DFT(polynomial,n,inverse=False): if inverse: primitive_root=[math.cos(-i*2*math.pi/(1<