当前位置: 首页 > news >正文

连续质数和

1.问题描述

编写一个程序,找出一个小于指定数的质数,且该质数可以表示为最多连续质数的和。

  • 定义函数find_consecutive_prime_sum(),它接受一个整数limit作为参数。
  • 函数应返回小于limit的质数,该质数是最多连续质数的和。
示例输入

100

示例输出

41

解释: 输出是41,因为 41小于100 且 41是一个质数 ,还是6个连续质数2 + 3 + 5 + 7 + 11 + 13的和。

2.python 实现


# 检查一个数是否为质数的函数
def is_prime(n):if n < 2:return Falsefor i in range(2, int(n ** 0.5) + 1):if n % i == 0:return Falsereturn Truedef find_consecutive_prime_sum(limit):# 生成所有小于limit的质数列表prime_lst = []for i in range(2, limit):if is_prime(i):prime_lst.append(i)# print(prime_lst)if not prime_lst:return None# 构建前缀和数组以便快速计算区间和n = len(prime_lst)sum_lst = [0] * (n + 1)for j in range(n):sum_lst[j + 1] = sum_lst[j] + prime_lst[j]# print(sum_lst)max_length = 0result = 0# 遍历所有可能的起始点i和结束点jfor k in range(n):for m in range(k + 1, n + 1):prime_sum1 = sum_lst[m] - sum_lst[k]if prime_sum1 >= limit:breakif is_prime(prime_sum1):prime_sum1_length = m - k# 比较长度,保存最大长度 如果长度相同则取较大的和if prime_sum1_length > max_length or (prime_sum1_length == max_length and prime_sum1 > result):max_length = prime_sum1_lengthresult = prime_sum1return result if result != 0 else None# 获取用户输入
limit = int(input())# 调用函数
print(find_consecutive_prime_sum(limit))

相关文章:

  • hugging-face数据集快速下载
  • 使用compressorjs实现前端图片压缩
  • 怎么判断一个Android APP使用了KMM这个跨端框架
  • [Java恶补day4] 283. 移动零
  • 水利水电安全员考试的案例分析题一般涉及哪些方面的知识?
  • 4408. 李白打酒加强版(dp)
  • 多路径可靠传输协议(比如 MPTCP)为什么低效
  • ISO 26262-5 评估硬件架构度量值
  • 频率分布直方图
  • 熔断器(Hystrix,Resilience4j)
  • Three.js 中的 Octree(八叉树)详解
  • deepseek组合使用
  • MySQL——复合查询表的内外连
  • python(29) : 使用webview打开网站
  • 电网绝缘子及破损、闪络缺陷YOLO数据集
  • 2025年渗透测试报告需求激增:企业如何科学选择渗透测试服务?
  • 基于大模型预测发育性髋脱位的多维度研究与应用报告
  • SAP在化工行业的数字化转型:无锡哲讯科技的赋能实践
  • 设计模式系列(05):工厂方法模式(Factory Method)
  • 传统工程项目管理与业财一体化管理的区别?
  • 惠民县建设局网站/网络运营怎么学
  • 网站防劫持怎么做/企业宣传册
  • 网站建设和使用情况/上海关键词排名优化公司
  • 建立网站公司/关键词排名什么意思
  • 黄色网站模板/外包网站
  • cms影视建站系统/视频互联网推广选择隐迅推