def sea_weierstrass(a, b, p, s=0): pari_light_interface.pari_init(100000000, 0) _a = pari_light_interface.pari_gp_read_str(str(a)) _b = pari_light_interface.pari_gp_read_str(str(b)) _p = pari_light_interface.pari_gp_read_str(str(p)) _t = pari_light_interface.pari_Fp_ellcard_SEA(_a, _b, _p, s) t = pari_light_interface.pari_GENtostr(_t) pari_light_interface.pari_close() return int(t)
def factor(n): pari_light_interface.pari_init(100000000, 0) _n = pari_light_interface.pari_gp_read_str(str(n)) _A = pari_light_interface.pari_Z_factor(_n) _P = pari_light_interface.pari_gel(_A, 1) _M = pari_light_interface.pari_gel(_A, 2) l = pari_light_interface.pari_lg(_P) f = [] for i in range(1, l): _p = int(pari_light_interface.pari_gel(_P, i)) p = int(pari_light_interface.pari_GENtostr(_p)) _m = int(pari_light_interface.pari_gel(_M, i)) m = int(pari_light_interface.pari_GENtostr(_m)) if f and len(f) > 0: assert ( p > f[-1][0] ) # if this fails, add some code that makes sure f is sorted f.append([p, m]) pari_light_interface.pari_close() return f
def factor(n): pari_light_interface.pari_init(100000000, 0) _n = pari_light_interface.pari_gp_read_str(str(n)) _A = pari_light_interface.pari_Z_factor(_n) _P = pari_light_interface.pari_gel(_A, 1) _M = pari_light_interface.pari_gel(_A, 2) l = pari_light_interface.pari_lg(_P) f = [] for i in range(1, l): _p = int(pari_light_interface.pari_gel(_P, i)) p = int(pari_light_interface.pari_GENtostr(_p)) _m = int(pari_light_interface.pari_gel(_M, i)) m = int(pari_light_interface.pari_GENtostr(_m)) if f and len(f) > 0: assert(p > f[-1][0]) # if this fails, add some code that makes sure f is sorted f.append([p, m]) pari_light_interface.pari_close() return f