python 求100以内的素数

看了几天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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目一 :求100以内的素数(素数为只能被1和它本身整除的整数) 解题思路: 求出100以内除了1的所有整数(1不...
    高杆python阅读 10,936评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,976评论 25 709
  • 在公交车上,习惯坐在最后一排。 今天等的时候,外面的气温已经逼近零下。天已经慢慢下起雨。 坐上公交车,正好最后一排...
    爱吃糖糖的小魔女阅读 3,649评论 0 0
  • 查了下文章,我是今年6月25进的简书,也就一个半月的光景,不多不少,感觉却是过了一个世纪,不时牵扯,有些漫长。 进...
    一条爬树的鱼阅读 2,548评论 11 2
  • 如果不是电动车没电了,我想我还是不会去骑共享单车的。 今天出门去办事,回来的时候,电动车电量不足了。把电动车让给老...
    泊家湾阅读 2,271评论 0 1

友情链接更多精彩内容