先定义一个有序列表,作为素数池,这样多次操作的时候可以直接用里面的素数作为取模的除数,以避免用冗余的合数来运算和重复性的运算: primePool = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,79,83,89,97,101,103,107,109,113] 定义素数判断函数 def isPrime(num): if num in primePool: return True sq = math.sqrt(num) p=2 for m in primePool: #先从素数池中找 p = m if