2301_76958254 2023-05-20 22:18 采纳率: 66.7%
浏览 53
已结题

Python 不大于n的最大素数?

Python 不大于n的最大素数?输入一个正整数n>1 十一点就要提交了,为什么不对啊!

img

  • 写回答

2条回答 默认 最新

  • 断水流大撕兄 HarmonyOS创作领域新星创作者 2023-05-22 16:53
    关注

    可以使用下面的算法计算不大于n的最大素数:

    
    def largest_prime_below(n):
        if n <= 2:
            return None
        primes = [2]
        i = 3
        while i <= n:
            is_prime = True
            for p in primes:
                if i % p == 0:
                    is_prime = False
                    break
            if is_prime:
                primes.append(i)
            i += 2
        return primes[-1]
    
    
    

    这个算法的思路是:1. 先定义一个素数列表primes,初始化为[2]2. 从i=3开始遍历,因为2是唯一的偶素数3. 对每个i,判断它是否是素数:- 取primes中的每个素数p,判断i是否能被p整除

    • 如果能被整除,则i不是素数,break退出本次循环
    • 如果i不能被任何素数整除,则i是素数,将i添加到primes中4. 重复步骤3,直到i>n为止5. 返回primes中的最后一个素数,这是不大于n的最大素数例如,输入n=97,该算法的执行过程是:i=3,primes=[2],3是素数,primes=[2,3]
      i=5,primes=[2,3],5是素数,primes=[2,3,5]
      i=7,primes=[2,3,5],7是素数,primes=[2,3,5,7]
      ...
      i=97,primes=[2,3,5,7,11,...,83],83是最大素数所以,返回83,这是不大于97的最大素数。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月2日
  • 已采纳回答 5月25日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 esp32驱动GC9A01循环播放视频
  • ¥15 惠普360g9的最新bios
  • ¥15 配置hadoop时start-all.sh老是启动失败
  • ¥30 这个功能用什么软件发合适?
  • ¥60 微信小程序,取消订单,偶尔订单没有改变状态
  • ¥15 用pytorch实现PPO算法
  • ¥15 关于调制信号的星座图?
  • ¥30 前端传参时,后端接收不到参数
  • ¥15 这是有什么问题吗,我检查许可证了但是显示有呢
  • ¥15 机器学习预测遇到的目标函数问题