Python学习之 您所在的位置:网站首页 python求质数用while循环 Python学习之

Python学习之

2023-09-24 11:38| 来源: 网络整理| 查看: 265

题目: 求100以内所有的素数和个数

延伸:任意范围内的素数和前N个素数的和.

定义

何为素数?素数(又称为质数)就是在所有比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做质数。还可以说成质数只有1和它本身两个约数。2.素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任 何其它两个整数的乘积。

解法

知道了素数的定义之后,该如何求解素数呢?不论是求和,还是求解任意范围内的素数,其基本原理都是一样,都需要求解出特定范围内的素数,剩下的只是取值界限不一样而已,因此,在这里我们用100以内的素数为例,讲解下在python中如何求解.

方法一: 穷举法 n=100 count =0 primenumber=[] for x in range (2,n+1): for i in range(2,x): if x%i ==0: break else: count+=1 primenumber.append(x) print(count) print(primenumber) 方法二: 开方减"半"法 #解释:一个非质数的整数一定能拆分成两个数的乘积(废话么),重点在这两个数(还是废话)一定有一个数小于等于其开方值. #举例:36 可以拆分成2*18 3*12 6*6 1* 36 也就是说能被拆分的数两个数一定有一个数是在[1,6]之间,如果 #在[1,6]之间都找不到一个数可以被36整除,那么6以后的数也一定不会存在. #下面就可以缩小循环的下限值了: n=100 count =0 primenumber=[] for x in range (2,n+1): for i in range(2,int(pow(x,0.5))+1): if x%i ==0: break else: count+=1 primenumber.append(x) print(count) print(primenumber) 方法三:去除偶数法 #解释:在方法2的基础上已经剔除了很多无用的数,但是其中还是有很多数是没有必要算的,比如所有的偶数,(2除外.为什么呢?因为2是特殊的质数)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有