_Hello world_ 2023-03-19 15:06 采纳率: 75%
浏览 18
已结题

python一个求素数的算法,求解释

看到一个求10以内素数的算法,感觉好神奇啊,不是很理解,求帮忙解释一下~

i=2
while(i<10):
    j=2
    while(j<=(i/j)):
        if not(i%j):break
        j+=1
    if(j>i/j):print(i,"是素数")
    i+=1

  • 写回答

2条回答 默认 最新

  • 追cium 2023-03-19 15:16
    关注

    参考GPT和自己的思路:

    这是一个使用 Python 编写的求 10 以内素数的算法。具体来说,它使用了两个嵌套的 while 循环,分别用于从 2 到 9 遍历每个数,以及从 2 到每个数的平方根遍历所有可能的因子,判断当前数是否为素数。

    具体的实现是这样的:在循环中,我们先将 i 设置为 2(第一个素数),然后从 j=2 开始循环,判断 i 是否可以被 j 整除。如果是,则表明 i 不是素数,直接退出内层循环;否则,继续递增 j,直到 j > i 的平方根时,表明 i 是素数,输出其值,并递增 i 继续下一轮循环。

    需要注意的是,在内层循环中,我们使用了 "not(i%j)" 的判断语句来判断是否能被整除。这是因为 Python 中非零数都会被解释为 True,而 0 则为 False,所以 not(i%j) 表示判断 i 是否能被 j 整除,如果整除返回的结果是 0,非零数取反后转换为 False,表示不能整除;否则返回的是 True,表示可以整除。

    总的来说,这个算法就是通过在给定区间内遍历每个数,并利用质数只能被 1 和本身整除的特性,逐个判断是否为素数的方法。

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 专家已采纳回答 10月29日
  • 创建了问题 3月19日

悬赏问题

  • ¥100 华为手机私有App后台保活
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估
  • ¥15 java 通过反射找路径下的类,打包后就找不到
  • ¥15 通联支付网上收银统一下单接口
  • ¥15 angular有偿编写,
  • ¥15 centos7系统下abinit安装时make出错