先交个小作业

作者: Snow__ | 来源:发表于2017-05-23 12:42 被阅读0次

    测试题1:求100以内的素数。

    思路:简单粗暴,两次遍历,看每个数能不能被从2开始到本身的数(其实可以到本身的平方根就可以啦)整除。

    def is_prime(n):
        if n == 1:
            return False
        for i in range(2, n + 1):
            fg = 1
            for j in range(2, i):
                if i % j == 0:
                    fg = 0
                    break
            if fg == 1:
                print(i)
    
    is_prime(100)
    

    其实用列表写起来会更方便些,因为想着不用列表,所以就没有使用列表。(啊啊啊,C语言式的写法,一点都不Python!)
    看到群里小伙伴的另一种思路:先建立一个0-100的列表,每遍历一个数,就把它的倍数删除。一边遍历一边删除,剩下来的就是素数了。但是这种算法的时间复杂度也是O(n^2)。不知道有没有什么更好的算法呢。

    相关文章

      网友评论

        本文标题:先交个小作业

        本文链接:https://www.haomeiwen.com/subject/mmwwxxtx.html