Python打印某范围内的素数

来源:互联网 发布:声音编辑软件 编辑:程序博客网 时间:2024/05/22 15:51

继续练手Python基础部分:用Python实现某范围的素数打印

分别用while循环和for循环实现,然后用自定义函数方式,代码如下:

# -*- coding: utf-8 -*-"""Created on Sun Oct 23 20:16:41 2016打印出素数如果某个数x能够整除 2~根号x包含2端,那么这个数就不是素数,只能被1和他本身整除找出2~x之间的素数@author: qq1013985957"""primeMax = int(raw_input("请输入素数的范围:".decode('utf-8')))#raw_input在Pythonx,y2.7中始终是乱码,先转码,然后将输入的字符串转intfrom math import sqrt       x = 2while x<=primeMax:    start = 2    end = sqrt(x)    while start <= end:        if x%start==0:#非素数的满足条件            break        start+=1#因素自增     #此处解释:如果x能被 2~ 根号x整除 然后跳出循环,那么start一定<=end     #否则循环完毕start肯定>end,此时就是素数    if start>end:        print x    x+=1print("-------------------------")for x in range(2,primeMax+1):    flag = True#标记位,默认为素数    for y in range(2,int(sqrt(x))+1):        if x%y==0:#非素数的满足条件            flag = False#非素数            break    if flag:        print x         

结果截图:


使用自定义函数:

# -*- coding: utf-8 -*-"""Created on Mon Oct 24 21:48:32 2016@author: qq1013985957"""from math import sqrtdef isprime(num):    "number is prime ,is true,else false"    start = 2    end = int(sqrt(num))    for i in range(start,end+1):        if num%i==0:            return False    return Truex = int(raw_input("请输入素数范围:".decode("utf-8")))for i in range(2,x):    if isprime(i):        print i

结果截图:



0 0
原创粉丝点击