def primeFactorization(length): #分解质因数 global p, q q = get_large_prime_length(length) while True: d = random.randint(2, 10000) if d % 2 == 0: p = q * d + 1 if is_prime(p) == True: break else: continue else: continue primeList = prime_range(2, int(math.sqrt(d))) result = [[0, 0] for i in range(len(primeList))] for i in range(len(primeList)): result[i][0] = primeList[i] while d % primeList[i] == 0: result[i][1] += 1 d = d // primeList[i] if d != 1: result.append([d, 1]) result.append([q, 1]) # 请问这个result列表的作用是什么? return result
def primeFactorization(k): #分解质因数 while True: q = get_large_prime_length(length) p = (q * k + 1) if (k % 2 == 0) else (q * (k + 1) + 1) if is_prime(p) == True: break else: continue primeList = prime_range(2, int(math.sqrt(k))) result = [[0, 0] for i in range(len(primeList))] for i in range(len(primeList)): result[i][0] = primeList[i] while k % primeList[i] == 0: result[i][1] += 1 k = k // primeList[i] if k != 1: result.append([k, 1]) result.append([q, 1]) return result, p, q
def rsp(): print(prime_range(10, 100)) # 0.028922319412231445