为什么我的 Python 素数生成器只打印 count 变量?

Patricia Arquette
发布: 2024-11-10 21:56:02
原创
829 人浏览过

Why is my Python prime number generator only printing the count variable?

对 Python 中的简单素数生成器进行故障排除

您的代码旨在生成素数,但它遇到了问题并且仅打印计数多变的。让我们探讨一下原因并提供解决方案。

以下代码被识别为存在问题:

import math

def main():
    count = 3
    one = 1
    while one == 1:
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0:
                continue
            if count % x != 0:
                print(count)

        count += 1
登录后复制

有两个主要问题:

  1. 您不正确当数字可以被“x”整除时,将数字打印为素数。您应该检查整除性,而不是相反。
  2. 当 count 可以被“x”整除时,您不是中断内部循环,而是继续下一次迭代,这将导致素数确定不准确。

这是代码的修订版本,解决了这些问题:

import math

def main():
    count = 3

    while True:
        is_prime = True
    
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0:
                is_prime = False
                break

        if is_prime:
            print(count)
    
        count += 1
登录后复制

此更新代码更正逻辑以确保仅打印素数。它使用“is_prime”标志检查整除性,如果 count 可被“x”的任何值整除,则中断内部循环。

以上是为什么我的 Python 素数生成器只打印 count 变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板