Python打印某范围内的素数

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

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

# -*- coding: utf-8 -*-
"""
Created on Sun Oct 23 20:16:41 2016
打印出素数
如果某个数x能够整除 2~根号x包含2端,那么这个数就不是素数
,只能被1和他本身整除
找出2~x之间的素数
@author: 
"""
primeMax = int(raw_input("请输入素数的范围:".decode('utf-8')))
#raw_input在Pythonx,y2.7中始终是乱码,先转码,然后将输入的字符串转int
from math import sqrt       
x = 2
while 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+=1
print("-------------------------")
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
         

结果截图:

Python打印某范围内的素数_第1张图片

使用自定义函数:

# -*- coding: utf-8 -*-
"""
Created on Mon Oct 24 21:48:32 2016

@author: 
"""
from math import sqrt
def 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 True
x = int(raw_input("请输入素数范围:".decode("utf-8")))
for i in range(2,x):
    if isprime(i):
        print i

结果截图:

Python打印某范围内的素数_第2张图片

你可能感兴趣的:(Python打印某范围内的素数)