python100以内的素数之和是多少,python输出1000以内的素数以及这些素数之和

  python100以内的素数之和是多少,python输出1000以内的素数以及这些素数之和

  今天做了一道用for循环求100以内素数之和的题,发现自己在Python语法上遇到了一个问题:这还有谁的?在这里做个记录,以防你下次再做错事。

  题目很简单:100以内素数之和

  求100以内所有质数之和并输出。

  质数是大于1的整数,只能被1和它本身整除。可以逐个判断100以内的每个数是否是质数,然后求和。一开始,我的程序是这样的:

  对于range (2,100)中的I,Sum=0:#对于range(2,I)中的J,搜索范围为2-99:if(I % J==0):break else:sum=I print(sum)但是,输出时sum等于66705!

  这显然是错误的!

  为了初步检查我找到的素数是否有问题,我修改了程序。

  对于range (2,100)中的I,sum=0:#对于range(2,I)中的J,搜索范围为2-99:if(I % J==0):break else:print(I)# sum=I # print(sum)果然,输出的素数有问题。结果发现找到的质数被多次输出甚至是非质数,当然比正确答案大很多。

  但是为什么会有这样的错误呢?

  回顾:

  Break语句:用于跳出最里面的for或while循环,即break语句只能跳出当前级别的循环。跳出这个循环后,从这个循环后面的代码继续执行。

  If-else两个分支:如果满足If后的条件,则执行冒号后的语句;否则,在else冒号后执行该语句。二分支结构用于区分后置if条件的两种可能性,即满足真条件和不满足假条件,从而分别形成执行路径。

  因此,在上面的程序中,在嵌套了双层for之后,使用了if-else二分支。如果满足条件:I取J的余数为零(ij,排除i=j的情况),这意味着I能被1和它本身之外的其他整数整除,那么这个I就不是素数。用break跳出循环,继续搜索素数;如果不满足这个条件,就说明找到了一个素数I。执行else冒号后的语句打印出这个质数,并将for循环返回给J,但是J的循环是从2到I的前一个数,如果I是质数,那么无论J是多少都是不能分的。所以每个j都是遍历无穷除打印I。我除了少数几次被打印了几次,以至于素数的输出不准确。即使对于一个非素数I,如果不能被当前遍历得到的j整除,I也会一直被打印,直到I和j可以整除,跳出j的循环。

  再复习一遍:

  For in-else语句:在in之后遍历遍历结构,else之后的语句只有在For循环因为条件不成立而正常遍历所有内容或者结束循环,并且没有因为break或者return而跳出循环的时候才会执行。

  这里的“其他”是为了还是如果?显然,应该是为了。只有遍历完所有的J,我才能算是一个素数,输出。写程序的时候不小心写错了else的位置;Python语法经验不足,未能彻底结合题目意思。认识到问题,修改程序。

  Sum=0f或i in range (2,100): for j in range (2,I):if(I % j==0):break else:sum=iprint(sum)output sum=1060,这是正确答案!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • python 中文unicode编码,python输出字符的unicode
  • python 中文unicode编码,python输出字符的unicode,Unicode和Python的中文处理
  • python输出两个数之间的整数,python编写程序,要求输入两个整数,求两数之和后输出
  • 字母在python中怎么表示,用python输出字母金字塔
  • python输出n×n的方格矩阵,python 输入矩阵
  • python自动换行快捷键,python输出自动换行怎么设置
  • python求两个给定正整数的最大公约数和最小公倍数,python输出最大公约数和最小公倍数
  • 如何用python输出九九乘法表,怎么用python打印九九乘法表
  • python输出清屏代码,python终端清屏命令
  • python输出fibonacci数列的前30项,编程求fibonacci数列前20项
  • 输出一个n阶的方阵python,python输出1到100的奇数和偶数
  • Python输出字符串长度,python获取字符串的长度
  • python变量名在引用前必须赋值,python输出语句中引用变量
  • 用python输出1000以内所有的质数,python中输出100-200的质数
  • python输出1到100的素数,python求100到1000以内有多少个素数-
  • 留言与评论(共有 条评论)
       
    验证码: