python求10以内的素数_python 求100以内的素数

本文介绍了一种使用Python计算100以内素数的方法,通过双重循环判断除数和被除数的关系,初步实现后进一步封装为函数`printPrimeNumber`,并进行输入参数类型检查,确保输入为整数。最后更新了函数实现,将结果存储到列表中返回。
摘要由CSDN通过智能技术生成

看了几天Python语法, 写一个小作业。

看代码

for divisor in range(101):

# range(x) 是 0到x-1 的list 数组

if divisor < 3:

# 1 和 2 这两个数先打印出来, 下面的判断直接从 3 开始

print(divisor)

else:

for dividend in range(2, divisor+1):

# 思路: 用我们取到的数 除以所有比他小的整数, 如果可以整除 则排除这个数是素数的可能性

result = divisor%dividend

if result == 0:

# 可以整除的条件下 判断除数 是不是 等于 被除数,不等于则跳过

if dividend != divisor:

break

else:

#打印正确的结果

print(divisor)

先实现效果,我承认代码写得很丑。下一步 打算把它封装成函数。

把上面的代码块 封装成函数的写法

代码如下:

def printPrimeNumber(num:int):

# 有个疑问, 不能像 c 语言一样 在定义函数的时候就申明好参数的类型么 [经过尝试 可以这样实现]

# 比如 函数写作 def printPrimeNumber(num:int) 类似这样的写法, 这样我们在调用函数的时候就知道传申明数据类型进来,岂不是很方便!

# 这里进行 参数类型判断 是不是 int 类型, 如果传入了错误的数据类型 抛出错误

if not isinstance(num,(int)):

# 抛出错误 信息, 这里的错误信息可以自定义!

raise TypeError("输入数据类型错误:必须输入 int 类型")

for divisor in range(num + 1):

# range(x) 是 0到x-1 的list 数组

if divisor < 3:

# 1 和 2 这两个数先打印出来, 下面的判断直接从 3 开始

print(divisor)

else:

for dividend in range(2, divisor + 1):

# 思路: 用我们取到的数 除以所有比他小的整数, 如果可以整除 则排除这个数是素数的可能性

result = divisor % dividend

if result == 0:

# 可以整除的条件下 判断除数 是不是 等于 被除数,不等于则跳过

if dividend != divisor:

break

else:

# 打印正确的结果

print(divisor)

printPrimeNumber(100)

2017-05-25 从新修改

def printPrimeNumber(num:int):

#输入类型判断

if not isinstance(num,int):

raise TypeError("输入类型错误")

result = []

for divisor in range(2,num+1):

for dividend in range(2,divisor+1):

if divisor%dividend == 0:

if dividend != divisor:

break

else:

result.append(divisor)

return result

print(printPrimeNumber(100))

#printPrimeNumber(100)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值