如何使用joblib判断整数是否为素数,素数则计算其平方?
使用joblib批量处理素数判断与平方计算
功能实现
批量判断2到99999之间的整数是否为素数,若是素数则返回其平方值,非素数则返回None,借助joblib实现并行计算以提升处理速度。
完整代码
import joblib def is_prime(n): for i in range(2, n): if n % i == 0: return False return True def square_if_prime(n): if is_prime(n): return n * n return None # 开启4个并行任务处理批量整数 primes = joblib.Parallel(n_jobs=4)(joblib.delayed(square_if_prime)(n) for n in range(2, 100000)) # 过滤掉非素数对应的None值 primes = [prime for prime in primes if prime] # 输出前10个素数的平方值 print(primes[:10])
代码说明
is_prime(n):基础素数判断函数,通过遍历2到n-1的整数,检查是否存在能整除n的数来判定素数。square_if_prime(n):逻辑处理函数,调用素数判断结果,返回素数的平方或None。joblib.Parallel(n_jobs=4):设置4个并行工作进程,对批量整数进行并行处理,相比单进程能大幅缩短处理大数量级整数的时间。- 最后通过列表推导式过滤掉
None,只保留有效素数平方值。
内容的提问来源于stack exchange,提问作者vanam saikiran
相关产品推荐
相关产品推荐

