题目:

1-100的质数,输出循环次数?

前置知识储备:

Python基础-range()函数

语法格式

range(start, stop, step)
	start:	计数从start开始, 默认从0开始
    stop:	计数从stop结束,[start,stop)含头不含尾
    step:	步长, 默认为1

range()函数的返回值类型是一个 range类型的数据, 可以理解为一个'整数列表', 但并非真正意义上的列表。

参考链接:Python基础-range()函数(定义一段整数范围)_pythonrange函数范围-CSDN博客

什么是质数?

在大于1的自然数中,除了1和该数自身外, 无法被其他自然数整除的数。

def panduan(n):
    if n <=1:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True

zhishu=[ ]
count = 0

for j in range(1,101):
    count+=1
    if panduan(j):
        zhishu.append(j)
print("1-100的质数",zhishu)
print("1-100的质数数量",count)
    

输出:

1-100的质数 [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
1-100的质数数量 100

如果想要用self那么就得创建类,并且用类的实列来调用。

要使用 self 来编写完整的代码,可以将 panduan 函数写成类的方法,并在类中进行调用

class slectzhishu:
    def chakan(self,n):
        if n <= 1:
            return False
        for i in range (2,int(n**0.5)+1):
            if n % i ==0:
                return False
        return True

count = 0
zhishu = []
#通过实列调用chakan
diaoyong = slectzhishu()

for j in range (1,101):
    count += 1
    if diaoyong.chakan(j):
        zhishu.append(j)

print("1-101的质数",zhishu)
print("1-101的执行次数",count)

易错点:

 return True

return True的位置是在所有循环判断之后才返回True证明是质数

for i in range (2,int(n**0.5)+1):

判断质数的条件,在[2,根号n]的范围内进行的,因为range是左闭右开,所以需要+1

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部